mrandy 2020-07-04
DML(Data Manipulate Language):数据操作语言,主要涉及的关键字为INSERT、UPDATE、DELETE(主要是对表数据进行修改).
一、INSERT
INSERT INTO 表名 (字段1,字段2、字段3.......) VALUES (值1,值2,值3);
INSERT INTO beauty (id,name,sex,borndate,phone,boyfriend_id) VALUES (NULL,‘任盈盈‘,‘女‘,‘1999-07-06‘,13865427898,8); (由于ID列为主键,MySQL支持主键自增,所以插入的值为null时,实际插入的id就是原来最大的id值+1) INSERT INTO beauty (id,name,sex,borndate,phone,boyfriend_id) VALUES (15,‘穆念慈‘,‘女‘,‘1989-07-06‘,13863327238,10); INSERT INTO beauty VALUES (17,‘小毛毛‘,‘女‘,‘1992-10-10‘,13863327238,null);(字段可以省略,默认的字段顺序和MySQL表中存储的顺序一致)
注意事项:
1、字段类型和值的类型必须保持一致或者是支持兼容,而且一一对应
2、可以为空的字段,可以不插入值,或者是用null值填充
3、不可以为空的字段必须要插入值
4、字段的个数和值的个数必须保持一致.
二、UPDATE
1、修改单表数据
UPDATE 表名 SET 字段1=新值,字段2=新值... [WHERE 筛选条件]
UPDATE beauty SET borndate=‘1999-12-12‘,phone=13876029843 WHERE id=1;
2、修改多表数据
UPDATE 表名1 别名1,表名2 别名2
SET 字段1=新值,字段2=新值...
WHERE 连接条件
AND 筛选条件
UPDATE beauty b,boys bo SET b.borndate=‘2020-02-02‘,b.phone=123456790,bo.boyName=‘令狐冲‘ WHERE b.boyfriend_id = bo.id AND b.id=1;
三、DELETE
1、删除单表数据
DELETE FROM 表名 WHERE 筛选条件
DELETE FROM beauty WHERE NAME = ‘任盈盈‘;
2、删除多表数据
DELETE 别名1,别名2
FROM 表名1 别名1,表名2 别名2
WHERE 连接条件
AND 筛选条件
DELETE b,bo FROM beauty b,boys bo WHERE b.boyfriend_id = bo.id AND b.boyfriend_id = 4;
3、DELETE 和 TRUNCATE的区别
1、DELETE可以添加WHERE条件,而TRUNCATE不能添加WHERE条件
2、TRUNCATE效率稍高(因为TRUNCATE后面没有条件筛选,做删除操作的时候不需要去判断条件,所有效率稍高一点)
3、TRUNCATE删除了自增长的列之后,插入数据数据是从1开始的,而DELETE删除了数据之后是从上一个断点开始
(例如删除的自增长列是id,开始表中有15条数据,那么最大的id是15,DELETE 删除之后,重新插入一条新纪录,新纪录的id是16,而使用TRUNCATE删除,
重新插入数据,id是从1开始)
4、DELETE删除可以回滚,TRUNCATE删除不能回滚