1、SQL语言的组成部分
DDL 数据定义语言
DQL 数据查询语言
DML 数据操作语言
TPL 事务处理语言
DCL 数据控制语言
CCL 指针控制语言
2、 约束
主键约束 : 主键约束是唯一非空的;一个表只能有一个主键;创建主键就会自动创建索引,删除主键对应的索引也会删除。创建:primary key
自增约束:auto_increment
非空约束:not null
唯一约束:inique key
默认值约束:default 默认值
检查约束:check(条件) ;该约束在8.0.16之后生效
外键约束:创建外键约束时,有默认的外键约束名,也可以自己指定;外键约束创建结束时,系统默认会在所在的列上创建对应的普通索引,但是索引名是列名;删除外键约束时,普通索引不会自动删除。
·区分主表从表:在从表上建立主键
·添加后主表的修改和删除数据受约束
·从表的添加和删除受到约束
·删除主表时必须先从从表删除
外键约束慎用,会影响数据的性能。
创建关键字:foreign key (从表字段) reference 主表名(主表字段)[on 外键约束等级]
3、索引
添加键约束时会自动创建索引;索引是为了提高查询效率,就像书的目录。
4、DML
添加数据:
insert into 表名 values(值列表); 值列表的顺序要和表中字段的顺序一样
insert into 表名(字段列表) values(值列表) 值列表的值的顺序要和字段列表的顺序一致
Insert into 表名 values(值列表1),(值列表2), …; 添加多个值
Insert into 表名(字段名) values(值列表1),(值列表2), …; 添加多个指定字段的值 。
复制一张表:
Create table 新表名 like 原表名;
Insert into 新表名 select * from 原表名;
修改数据
Update 表名称 set 字段名1=值1,字段名2=值2 where 条件;
删除数据
Delete from 表名 where 条件;
Truncate 表名; 删除表中所有数据
5、函数
5.1、聚合函数(分组函数)
解释:会对表中多行数据做一个运算得到一个结果
NAME | DESCRIPTION |
AVG() | 返回参数的平均值 |
BIT_AND() | 按位返回AND |
BIT_OR() | 按位返回OR |
BIT_XOR() | 按位返回异或 |
COUNT() | 返回返回的行数 |
COUNT(DISTINCT) | 返回许多不同值的计数 |
GROUP_CONCAT() | 返回连接的字符串 |
JSON_ARRAYAGG() | 将结果集作为单个JSON数组返回 |
JSON_OBJECTAGG() | 将结果集作为单个JSON对象返回 |
MAX() | 返回最大值 |
MIN() | 返回最小值 |
STD() | 返回样本的标准差 |
STDDEV() | 返回样本的标准差 |
STDDEV_POP() | 返回样本的标准差 |
STDDEV_SAMP() | 返回样本标准差 |
SUM() | 归还总和 |
VAR_POP() | 返回样本的标准差异 |
VAR_SAMP() | 返回样本方差 |
VARIANCE() | 返回样本的标准差异 |
5.2、单行函数
解释:会对表中的一行数据做运算,计算多少行就有多少个结果
6、DQL
1、查询语句的基本要素
查询关键字:select
其他元素:
from: 从哪些表中筛选
on:多表查询
where:从表中筛选条件
group by:分组依据
having:在统计结果中再次2筛选
order by: 排序 asc 升序;desc降序
limit: 分页
查询语句的元素就按照上面的顺序写。
7、联合查询
7.1、Union 合并多个select语句的结果集
两边的select的字段数需一样,按照左边显示,如果出现了相同的数据,union会自动去重。
7.2、from 后面就可以放多张表
7.3、join…on
Left join…on
Right join…on
Inner join…on
8、子查询
解释:嵌套在另一个查询语句中的查询,必须使用小括号括起来。
根据其位置不同有:
Select 型
from型
where/having型
Exists(子查询) 子查询有结果,执行外围查询,子查询无结果,不执行外围查询。