DML概述
DML:全称Data Manipulation Language,数据操作语言,用来实现对表中数据的插入、修改、删除。包含3个关键字:INSERT、UPDATE、DELETE。
插入数据
1 插入单行数据
插入单行数据的通用语法:
INSERT INTO 表名 ( 列名1 ,列名2, ......列名n )
VALUES (值1, 值2, ... 值n);
说明:
1、值与列必须位置对应,个数相同,类型相同
2、值的数据大小必须在列的长度范围内
3、除了数值类型外,其它数据类型的值必须使用单引号
4、如果要插入空值,可以不写列名,或者写NULL
1.1 给所有列赋值
包含两种写法:
写法1:所有的列名都写出来,语法如下:
INSERT INTO 表名 (列名1, 列名2, 列名3…)
VALUES (值1, 值2, 值3)
方法2:省略列列表,语法如下:
INSERT INTO 表名 VALUES (值1, 值2, 值3…);
1.2 给部分列赋值
要赋值的列名写出来,语法如下:
INSERT INTO 表名 (列名1, 列名2, 列名3…)
VALUES (值1, 值2, 值3);
1.3 插入日期值
SYSDATE() :返回系统当前日期和时间,可直接使用或放在SELECT子句中使用,如:
2 插入多行数据
2.1 插入多行数据语法
也可以一次性向表中插入多行数据,语法如下:
INSERT INTO 表名 (列名1, 列名2, 列名3…)
VALUES (值1, 值2, 值3),
(值1, 值2, 值3),
....
(值1, 值2, 值3);
注:值列表之间用逗号隔开
2.2 通过子查询插入多行数据
通过子查询可以一次性向表中插入多行数据,也叫蠕虫复制。作用就是将查询的结果集复制表中。语法如下:
INSERT INTO 表名 (列名1, 列名2, 列名3…) 查询语句;
说明:
1、不必书写values子句
2、列名列表中列的位置、列的数量、数据类型,必须和子查询中列的位置、数量和类型相匹配
例:使用如下SQL先创建经理表manager,然后再把EMP表中职位为MANAGER的记录复制过去。
第一步:创建manager表的SQL:
第二步:向manager表中插入职位为MANAGER的记录
修改数据
修改数据主要用来按照修改表中某些行的列数据。既可以修改所有行,也可以修改满足条件的行。
1 修改所有行
语法:
UPDATE 表名
SET 列名1 = 值1,列名2 = 值2,....列名n = 值n;
说明:
SET子句用来限定修改哪些列,一次可以修改一个列,也可以同时修改多个列,每个列之间用逗号分割。
例:把所有员工的部门编号修改为20,工资上浮100
2 修改部分行
语法:
UPDATE 表名
SET 列名1 = 值1,列名2 = 值2,....列名n = 值n
WHERE 条件表达式;
说明:
WHERE子句用来过滤修改哪些行。
例:把员工编号为7782的部门编号修改为20
删除数据
删除数据主要用来删除表中的行。既可以删除部分行,也可以删除所有行。
4.1 删除所有行
语法:
DELETE FROM 表名;
4.2 删除部分行
语法:
DELETE FROM 表名
WHERE 条件表达式;
总结
DML语句的类型
- INSERT:用于向数据库表中插入新的数据行。
- UPDATE:用于修改表中已存在的数据。
- DELETE:用于从表中删除数据行。
DML语句对于能够访问和分析数据库中的数据的应用程序和系统是至关重要的。它们不仅用于日常的数据管理任务,还用于执行数据完整性约束、跟踪数据变化、创建和维护备份及恢复程序等。