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删除可以回滚.