前言
DML(Data Manipulation Language),主要为插入、修改、删除。
一、DML
1)插入
插入数据
语法1:
insert into table(列名,。。。) values(。。。)
注:table中的数和values中的列数相等,当table中的列名顺序列举完时,可省略.
语法2:
insert into table set field = value,....
总结:语法1 可支持一次插入多条数据,可支持子查询。
USE girls;
INSERT INTO beauty ( id, `name` )
VALUES
( 13, '李清照' );# set 方式
INSERT INTO beauty
SET id = '14',
`name` = '慈禧太后'; # 语法1结合子查询
INSERT INTO beauty ( id, `name` ) SELECT
15,
'宋茜';
A)一次多插
INSERT INTO beauty ( id, `name` ) SELECT
id,
boyName
FROM
boys
WHERE
id > 2;
B)一次多插
USE girls;
INSERT INTO boys ( boyName, userCP )
VALUES
( 'll', 100 ),
( 'ss', 200 );
2)修改
修改语句
一、修改单表的数据
语法:
update table
set field = newValue,...
where id = value
二、修改多表的数据(级联更新)
语法:
update 表1 别名
join 表2 别名
on 连接条件
set 列=值,....
where 筛选条件
例1)修改beauty表中id=1的电话号码为88888888
USE girls;
UPDATE beauty
SET phone = '88888888'
WHERE
id = 1;# 修改多表
例2)修改张无忌的女朋友的电话号码为110
UPDATE boys b
INNER JOIN beauty bo ON bo.id = b.boyfriend_id
SET phone = '110'
WHERE
b.boyName = '张无忌';
3)删除
删除语句,删除的基本单位为一行即一条记录
1.单表的删除
语法:
delete from 表名 where 筛选条件
2. 多表的删除
语法:
sql99:
delete 表1的别名 | 表2的别名
from 表1 别名
[连接方式]join 表2 别名
on 连接条件
where 筛选条件
- 其它delete
truncate table 表名
删除整个表 # 单表的删除
例1)删除手机号码为‘110’的女生
DELETE
FROM
beauty
WHERE
phone = '110';# 多表级联删除
例2)删除张无忌及其所有女朋友
DELETE a,
b
FROM
boys a
INNER JOIN beauty b ON a.id = b.boyfriend_id
WHERE
a.boyName = '张无忌';
4)delete 和 truncate 的区别(常见面试题)
1.delete 可以有条件的删除一行或多行,truncate只能删完
2.truncate一下删完,没有条件,所以效率高一些。
3.delete删后,insert 数据,字段的自增长从增长停止处开始,说明delete不会导致计数器清零。
4.truncate 没有返回值,delete会返回删了多少行
5.truncate删除没有rollback,delete可以回滚。
总结
1)增加、修改、删除
参考文献
[1] MySQL 尚硅谷