DML操作是指对数据库中表记录的操作
- 插入:insert
- 删除:delete
- 修改:update
- 查询:select
插入语句
方式一
insert into 表名(列名…) value(值1,….);
要求
1.插入的值的类型要与列的类型一致或兼容
INSERT INTO beauty(id,`name`,sex,borndate,phone,photo,boyfriend_id)
VALUES(13, '唐艺昕','女','1990-4-23','18919232874',NULL,2);
2.不可以为null的列必须插入值
//方式一
INSERT INTO beauty(id,`name`,sex,borndate,phone,photo,boyfriend_id)
VALUES(13, '唐艺昕','女','1990-4-23','18919232874',NULL,2);
//方式二
INSERT INTO beauty ( id, `name`, sex,phone )
VALUES( 14, '古力娜扎', '女', '18919232874');
3.列的顺序可以调换
INSERT INTO beauty ( `name`,sex,id,phone,boyfriend_id )
VALUES( '关晓彤', '女',15, '18919232874',2);
4.列数和值个数必须相等
#5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
方式一
insert into 表名 set 列名=值,列名=值….
INSERT INTO beauty
SET id=16,`name`='林徽因',phone='1314';
特殊情况
1.方式一支持插入多行,方式二不支持
INSERT INTO beauty ( id, `name`, sex, borndate, phone, photo, boyfriend_id )
VALUES( 17, '唐艺昕1', '女', '1990-4-23', '18919232874', NULL, 2 ),
( 18, '唐艺昕2', '女', '1990-4-23', '18919232874', NULL, 2 ),
( 19, '唐艺昕3', '女', '1990-4-23', '18919232874', NULL, 2 );
2.方式一支持子查询,方式二不支持
INSERT INTO beauty(id,`name`,phone)
SELECT 20,'宋茜','19119292234';
修改语句
语法:
update 表名
set 列=新值,列=新值….
where 筛选条件;
补充
sql92:(内连接)
update 表1 别名,表2 别名
set 列=新值,列=新值….
where 筛选条件
and 筛选条件;
sql99:
update 表1 别名
inner/left/right join 表2 别名
on 连接条件
set 列=新值….
where 筛选条件
and 筛选条件;
1.修改单表记录
UPDATE beauty
SET phone='138888888'
WHERE `name` LIKE '唐%';
UPDATE boys
SET boyName='张飞',userCP=10
WHERE id=2;
2.修改多表记录
UPDATE boys bo
INNER JOIN beauty b
ON bo.id=b.boyfriend_id
SET b.phone='999'
WHERE bo.boyName='张无忌';
删除语句
方式一
- 单表删除
delete from 表名 where 筛选条件
- 多表的删除
sql92:
delete 表一的别名,表二的别名
from 表1 别名,表二 别名
where 连接条件
and 筛选条件;
sql99:
delete 表一的别名,表二的别名
from 表1 别名
inner/left/right join 表2 别名
on 连接条件
where 筛选条件;
1.单表的删除
DELETE FROM beauty
WHERE `name` LIKE '唐%';
2.多表的删除
DELETE 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 b.`name`='Angelababy';
方式二
- truncate(没有where,即将表全删除)
truncate table 表名;
- 假如要删除的表中有自增长列
delete删除后,再插入数据,自增长列的值从断点开始
truncate删除后,再插入数据,自增长列的值从1开始。
- truncate删除没有返回值, delete删除有返回值
- truncate删除不能回滚, delete删除可以回滚.
