MySQL联合查询,DML语言
2020-12-3学习记录
联合查询
查询总结
DML语言:
插入
修改
删除
联合查询
1.含义
union:合并、联合,将多次查询结果合并成一个结果
2.语法
查询语句1
union 【all】
查询语句2
union 【all】
...
3.意义
1.将一条比较复杂的查询语句拆分成多条语句
2.适用于查询多个表的时候,查询的列基本是一致
4.特点
1.要求多条查询语句的查询列数必须一致
2.要求多条查询语句的查询的各列类型、顺序最好一致
3.union 去重,union all包含重复项
查询总结
语法:
select 查询列表 ⑦
from 表1 别名 ①
连接类型 join 表2 ②
on 连接条件 ③
where 筛选 ④
group by 分组列表 ⑤
having 筛选 ⑥
order by排序列表 ⑧
limit 起始条目索引,条目数; ⑨
由上至下为书写顺序
语句后序号为执行顺序
DML语言:1.插入
1.方式一
语法:
insert into 表名(字段名,...) values(值,...);
特点:
- 要求值的类型和字段的类型要一致或兼容
- 字段的个数和顺序不一定与原始表中的字段个数和顺序一致
但必须保证值和字段一一对应 - 假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
①字段和值都省略
②字段写上,值使用null - 字段和值的个数必须一致
- 字段名可以省略,默认所有列
2.方式二
语法:
insert into 表名 set 字段=值,字段=值,...;
两种方式的区别:
- 方式一支持一次插入多行,语法如下:
insert into 表名【(字段名,..)】 values(值,..),(值,...),...;
- 方式一支持子查询,语法如下:
insert into 表名 查询语句;
DML语言:2.修改
1.修改单表的记录 ★
语法:
update 表名 set 字段=值,字段=值 【where 筛选条件】;
2.修改多表的记录【补充】
语法:
update 表1 别名
left|right|inner join 表2 别名
on 连接条件
set 字段=值,字段=值
【where 筛选条件】;
DML语言:3.删除
方式一:使用delete
1.删除单表的记录
语法:
delete from 表名 【where 筛选条件】【limit 条目数】
2.级联删除[补充]
语法:
delete 别名1,别名2 from 表1 别名
inner|left|right join 表2 别名
on 连接条件
【where 筛选条件】
方式二:使用truncate
语法:
truncate table 表名
两种方式的区别
- truncate删除后,如果再插入,标识列从1开始
delete删除后,如果再插入,标识列从断点开始 - delete可以添加筛选条件
truncate不可以添加筛选条件 - truncate效率较高
- truncate没有返回值
delete可以返回受影响的行数 - truncate不可以回滚
delete可以回滚