MySql教程

Mysql中DML的增删改

本文主要是介绍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删除可以回滚

这篇关于Mysql中DML的增删改的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!