一,union联合 合并:将多条查询语句的结果合并成一个结果。
语法就是
查询语句一
union
查询语句二
引入的案例:查询部门编号大于九十,或者邮箱包含a的员工信息
select * from emp where deptno>90 or email like"%a%";
select * from emp where deptno>90
union
select * from emp where email like"%a%";
应用场景:
案例二:查询中国用户男性的用户信息,以及外国用户男性的信息。
将两个查询语句结合就行了
select * from t_ca where sex=“男”
union
select * from t_u where tGender='male'
要查询的数据来自不同的多个表,且这多个表都没有直接的关系。但查询的信息是一样的,就使用联合查询。
特点:要求查询的列数必须是一样的
要求查询的顺序和列数是一致的
union 会进行去重。 使用 union all 可以避免去重。
插入语句的方式一
DML语言:数据操作语言:插入,修改,删除
insert update,delete
语法:往表中添加数据,属性名,属性值,表名,
insert into 表名(列名,....)values (值,值,值,值);
(1)要求插入的值得类型要与列的值类型一致或者兼容。
(2)不可以为null的列必须插入值,可以为null的列是如何插入值呢?
直接不写。
(3)列的顺序是否可以进行调换,不过属性值要与列一一对应。
(4)列的个数,必须要与值的个数一致。
(5)可以省略列名,默认是所有列,而且顺序与表顺序是一致的。
第二种方法:
语法:
insert into 表名
set 列名=值,列名=值、、、
两大方式的优点:方式一支持插入多行。insert into 表名 (列名 )values(),()
方式二不支持
方式一支持查询,方式二不支持查询。
insert into emp (id,name,phone)
select 26,‘宋茜’,‘11998091’;先查询,再将结果集插入到表中。
修改语句
修改单表中的记录,
修改多表中的记录。
update 表名 set 列名=新值(类型一致或者兼容)列=新值
where 筛选条件;
案例一:修改单表中的记录
update beauty set phone=‘11111111111’
where name like '唐%;
sq92语法:update 表一 别名,表二 别名
set 列=值
where 连接条件
and 筛选条件
sql99语法:
update 表一 别名,
inner/left/ join 表二 别名
on 连接条件
set 列=值
where 筛选条件
修改多表的记录
案例一:修改张无忌的女朋友手机号为12194192094;
先连接上两个表
update boy
inner join girl
on boid=grilid
set num ='123214152'
where name=‘张无忌’
删除语句
方式一:delete 语法: delete from 表名 where 筛选条件
实现单表删除,多表删除
方式二:truncate
语法truncate table 表名
方式一,单表的删除:删除手机号以9结尾的女神信息
delete from emp where phone like‘%9’;
删除黄晓明的信息以及他女朋友的信息
delete b,bo
from beauty b
inner join boys bo on b.boyfriend_id=bo_id
where bo.boyname='黄晓明'
删除方式二:truncate语句
案例:将魅力值大于一百的男神信息删除(不可以加where)清空数据,一删全删。
truncate table boys
两者的区别:delete 可以加where 条件,truncate 不能加
2,truncate 删除,效率高一点点
3,假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值要从断点开始,而truncate删除后,再插入数据,自增长的值要从1开始。
若不理解,可自行实验
4,truncate不能够回滚事务,delete可以回滚事务。