数据操纵语言
插入:insert
修改:update
删除:delete
语法:
insert into 表名(列名,…)values(值1,…);
特点:
1、插入值的类型要与列的类型一致或兼容
insert into beauty (id,name,sex,borndate,phone,photo,boyfriend_id)
values(13,‘syz’,‘女’,‘1999-1-27’,‘1898888888’,‘null’,2);
2、可以为null的列是如何插入值的?
方式一:
insert into beauty (id,name,sex,borndate,phone,photo,boyfriend_id)
values(14,‘xyz’,‘女’,‘1999-1-27’,‘1898888888’,null,2);
方式二:
insert into beauty (id,name,sex,phone)
values(15,‘syx’,‘女’,‘1898888888’);
3、列的顺序是否可以调换?(可以,但是值要一一对应)
insert into beauty (name,sex,id,phone)
values(‘wjk’,‘女’,'16’1898888888);
4、列数和值的个数必须一致
insert into beauty (name,sex,id,phone)
values(‘wjz’,‘女’,'17’1898888888);
5、可以省略列名,默认所有列,而且列的顺序和表中的列的顺序一致
insert into beauty
values (18,‘wyz’,‘女’,null,‘1898888666’,null,null);
语法:
insert into 表名
set 列名=值,列名=值,…
案例:
insert into beauty
set id=19,name=‘wy’,phone=‘182666888’;
1、方式一支持插入多行,方式二不支持
insert into beauty
values(20,‘syz’,‘女’,‘1999-1-27’,‘1898888888’,‘null’,2),
(21,‘syz’,‘女’,‘1999-1-27’,‘1898888888’,‘null’,2),
(26,‘syz’,‘女’,‘1999-1-27’,‘1898888888’,‘null’,2);
2、方式一支持子查询,方式二不支持
insert into beauty (id,name,phone)
select 26,‘syz’,‘1888’;
insert into beauty(id,name,phone)
select id,boyname,‘123456789’
from boys where id<3;
语法:
update 表名
set 列=新值,列=新值,…
where 筛选条件;
案例1:修改beauty表中姓唐的女神电话改为13899888899
update beauty
set phone =‘13899888899’
where name like ‘唐%’ ;
语法:
sql92:
update 表1 别名, 表2 别名
set 列=值,…
where 连接条件
and 筛选条件;
sql99:
update 表1 别名
inner | left | right | join 表2 别名
on 连接条件
set 列=值,…
where 筛选条件;
案例1:修改张无忌的女朋友的手机号为114
update boys bo
inner join beauty b
on bo.id = b.boyfriend_id
set b.phone =‘114’
where b.boyname=‘张无忌’;
案例2:修改没有男朋友的女神的男朋友编号都为张飞
update boys bo
right join beauty b
on bo.id = b.boyfriend_id
set b.boyfriend_id = 2
where b.id is null;
语法:
1、单表的删除
delete from 表名 where 筛选条件
2、多表的删除
sql92语法:
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法:(※)
delete 表1的别名,表2的别名
from 表1 别名
inner | left | right | join 表2 别名
on 连接条件
where 筛选条件;
1.单表的删除
案例:删除手机尾号9的女神的信息
delete from beauty where phone like ‘%9’;
2.多表的删除
案例:删除张无忌的女朋友的信息
delete beauty b
from beauty b
inner join boys bo
on b.boyfriend_id = bo.id
where bo.boyname = ‘张无忌’;
案例:删除黄晓明的信息,以及女朋友的信息
delete b,bo
from beauty b
inner join boys bo
on b.boyfriend_id = bo.id
where bo.boyname = ‘黄晓明’;
语法:
truncate table 表名;
案例:将男神biao删除
truncate table boys;
1、delete可以加where条件,truncate不能加
2、使用truncate删除,效率更高
3、假如要删除的表有自增长列,如果用delete删除后,自增长列得知从断点开始,而truncate删除后在插入数据,自增长的值从1 开始
4、truncate删除没有后返回值,delete删除有返回值
5、truncate删除不能回滚,delete删除可以回滚