Mysql中DML的增删改

DML语言

数据操纵语言
插入: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;

二、修改语句

1、修改单表中记录 ※

语法:
update 表名
set 列=新值,列=新值,…
where 筛选条件;

案例1:修改beauty表中姓唐的女神电话改为13899888899
update beauty
set phone =‘13899888899’
where name like ‘唐%’ ;

2、修改多表的记录

语法:
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;

删除语句

方式一:delete

语法:
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

语法:
truncate table 表名;

案例:将男神biao删除
truncate table boys;

delete 和 truncate

1、delete可以加where条件,truncate不能加
2、使用truncate删除,效率更高
3、假如要删除的表有自增长列,如果用delete删除后,自增长列得知从断点开始,而truncate删除后在插入数据,自增长的值从1 开始
4、truncate删除没有后返回值,delete删除有返回值
5、truncate删除不能回滚,delete删除可以回滚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值