1.创建数据库

CREATE DATABASE 数据库名 CHAR SET UTF8;


2.显示所有数据库

SHOW DATABASES;


3.使用数据库;

USE 数据库名


4.创建表; 表,储存数据的单位

用户表; 用户的ID 年龄,用户名
CREATE TABLE USER(ID INT , AGE INT ,USERNAME VARCHAR (10))


5.显示所有的表

SHOW TABLES;


6.查表的字段;

DESC 表明;


7.表加字段; 条件几个性别

ALTER TABLE 表名 ADD 字段名 字段类型


8.修改字段的类型;

ALTER TABLE 表名 MODIFY 字段名 字段类型;


9.删除字段;

ALTER TABLE 表名 DROP 字段名;


10.修改表名;

RENAME TABLE 原名字 TO 新名字;


11.查看建表细节;

SHOW CREATE TABLE 表名;


12.修改表的字符集

ALTER TABLE 表名 CHARACTER SET 字符集名称


13.修改列名;

ALTER TABLE 表名 CHANGE 原始列名 新列名 字段类型;


14.删除表;

DROP TABLE 表名;


DML; 管理数据;


1.查询所有的数据;

SELECT * FROM 表名 ;

2.插入数据;

INSERT INTO 表名 (字段1,字段2) VLUES (字段1的值,字段2的值);

3.更新数据;

UPDATE 表名 SET 列名 = 列值 WHERE 列名 = 列值;

4.删除记录;

DELETE FROM 表名 WHERE 列名=值; 删除数据可以找回
TRUNCATE TABLE 表名; 删除整个表 在重新建立一个一样结构的表,数据不能找回

DQL; 数据查询语句;


1.查询所有数据;

SELECT * FROM 表名 ;

2.查询定制数据;

SELECT 指定字段 FROM 表名;

3.条件查询(根据条件查询)

SELECT * FROM 表名 WHERE 字段 <=17;

4.查询年龄;

SELECT * FROM 表名 WHERE 字段 BETWEEN 17 AND 15;

5.查询年龄在15 和 字段 两个条件

SELECT FROM 表名 WHERE 字段=数值 AND 字段= 数值;
查询条件 或 条件
SELECT
FROM 表名 WHERE 字段 = 数值 OR 字段 = 数值;
and
or
is null
is not null

6.模糊查询 ; LIKE _一个字符 %多个字符

查询name 性马的;
SELECT * FROM 表名 WHERE 字段名 LIKE 马%

7.排序 ORDER BY

升序 ASC;
降序 DESC;
SELECT * FROM 表名 ORDER BY 字段名 排序方式;

8.聚合函数

COUNT () 统计不会NULL 的行数
SELECT COUNT(字段) FROM 表名
MAX()
MIN()
SUM()
AVG()

分组; GROUP BY 字段名

关键字顺序
书写顺序
SELECT (5) FROM (1) WHERE(2) GROUP BY(3) HAVING(4) ORDER BY(6) LIMIT(7)

分页; LIMIT INT (下标 从第几个查) ,int (显示几个)

开始的索引 = (当前的页码 - 1 ) * 每页显示的条数

约束;

PRIMARY KEY 主键唯一不为空
UNIQUE;唯一
AUTO_INCREMENT (自增);
not null ;不为空

外键;


创建外键;

CONSTRAINT 外键名 FOREIGN KEY(外键列名称) REFERENCES 主表名称(列名称)

删除外键;

ALTER TABLE 表名 DROP FOREING KEY 外键名称;

创建表之后删除外键;

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREING KEY (外键字段名称) REFERENCES 主表名称 (主表列名称);

级联;


添加级联操作;

创建表之后删除外键 + ON UPDATE CASSCADE ON DELETE CASCADE ;

级联分类;

可以放一起 也可以分开
更新 ON UPDATE CASSCADE
删除 ON DELETE CASCADE

多表联查;


99;
SELECT student.name ,teacher.tname from student,teacher where student.id = teacher.sid;


内连接;

JOIN ON
SELECT * FROM 表一 JOIN 表二 ON 条件;

左外链接和右外连接;

SELECT * FROM 表一 LEFT JOIN 表二 ON 条件;

索引;


加快查询效率 1000万个数据ID给上索引

创建索引

CREATE INDEX 索引名 ON 表名(字段);

删除索引;

DROP INDEX 索引的名称 ON 表名;

查看索引;

SHOW INDEX FROM 表名;

数据库的设计


多表之间的关系
1.一对一;
2.一对多(多对你);
3.多对多;
2.实现关系;
1.一对多(多对一)
实现方式;在多个一方建立外键,指向一的一方的主键
2.多对多;
实现方式;多对多关系实现需要借助第三张中间表,最少两个字段,作为第三张表的外键分别指向两张表的主键
联合主键

正确思路写法

SELECT
查什么
FROM
哪个表
WHERE
什么条件