【MySQL】数据管理语言DML
数据管理语言DML(Data Manipulatioin language)
对象:表数据
关键词:insert、update、delete
1、INSERT新增
1.1 语法
# 格式一:表名后的字段可以不按照表中顺序放,但是值必须和字段对应。
INSERT INTO 表名【字段1,字段2,...,字段n】 values(值1,值2,...,值n);
# 格式二:省略表名后的字段,但是值必须按照表字段顺序。
INSERT INTO 表名 values(值1,值2,...,值n);
1.2 特点
- 要求值的类型和字段的类型要一致或兼容
- 字段的个数和顺序不一定与原始表中的字段个数和顺序一致,但必须保证值和字段一一对应
- 假如表中有可以为null的字段,注意可以通过以下两种方式插入null值:①字段和值都省略、②字段写上,值使用null
- 字段和值的个数必须一致
- 字段名可以省略,默认所有列
- 方式一支持一次插入多行,语法如下:INSERT INTO 表名【(字段名,…)】 VALUES(值,…),(值,…),…;
- 方式一支持子查询,语法如下:INSERT INTO 表名 查询语句;
1.3 总结
- 项目中经常使用格式一,SQL清晰,明确,日志信息也比较直观。
- 项目中多使用批量插入,一般循环值,拼接多个,用逗号隔开。
2、UPDATE更新
2.1 语法
1、单表更新
UPDATE 表名 SET 列 = 值,... WHERE 查询条件;
2、多表更新
#sql92语法:
UPDATE
表1 别名,
表2 别名
SET
列 = 值,
...
WHERE 连接条件 AND 筛选条件 ;
#sql99语法:
UPDATE
表1 别名
INNER | LEFT | RIGHT JOIN 表2 别名 ON 连接条件
SET 列 = 值,
...
WHERE 筛选条件 ;
2.2 总结
项目中常用的更新也是批量的,单条数据的更新尽可能的入参条件和更新数据做成动态化的,可配置的,方便开发提高效率。
3、DELETE删除
3.1 语法
1、单表删除
DELETE FROM 表名 【WHERE 筛选条件 】;
2、多表删除(级联删除)
# sql92语法:
DELETE
表1的别名,
表2的别名
FROM
表1 别名,
表2 别名
WHERE 连接条件 AND 筛选条件 ;
# sql99语法:
DELETE
表1的别名,
表2的别名
FROM
表1 别名
INNER | LEFT | RIGHT JOIN 表2 别名 ON 连接条件
WHERE 筛选条件 ;
3.2 总结
删除在项目中使用的并不多,一般都是对数据状态进行修改,使其不展示给用户。数据一般不轻易删除。