DML:数据操纵语言(Data Manipulate Language)数据操纵语言:定义是用来操作数据 insert(插入) update(修改) delete(删除)
数据插入
INSERT INTO 表名(字段名,...) VALUES (值,...);
单行插入数据
#方式一
INSERT INTO 表名(字段,...) VALUES (值,...);
#方式二
INSERT INTO 表名 SET 字段名1=值1,字段名2=值2;
多行插入数据
#方式一
INSERT INTO 表名 (字段,...) VALUES (值,...),(值,...);
#方式二
INSERT INTO 表名 (字段,...) SET 值1,值2 ...UNION [all]
SET 值1,值2 ...UNION [all];
数据插入特点
- 值和字段要一一对应
- 如果字段为字符型或日期型,值要用单引号括起来;如果为数值型,则不需要
- 字段和值的个数必须一致
- 不能为空的字段必须插入值
- 字段列表可以不写,默认是所有字段
- 可以为空的字段不用插入值,但必须遵循以下写法:
- 字段和值都不写
- 字段写上,值用null代替
数据更新
#单表更新
UPDATE 表名 SET 字段名=值,字段名=值 [WHERE 条件]
#多表更新
UPDATE 表名1 [AS] 别名1,表名2 [AS] 别名2 SET 字段=值,字段=值 WHERE 连接条件 AND 筛选条件
数据删除
使用DELETE删除
#单表删除
DELETE FORM 表[WHERE 条件]
#多表删除
DELETE a,b FROM 表一 a,表二 b WHERE 连接条件 AND 筛选条件
使用TRUNCATE
TRUNCATE TABLE 表名;
两种删除方式的区别
- 当有标识列是TRUNCATE删除后,再插入标识列从1开始,而DELETE从断点处开始
- TRUNATE删除后事务不能回滚,DELETE删除后事务可以回滚
- TRUNATE 效率高,不能删除多个表,不能加WHERE条件