Skip to content

数据库DML数据操控语言详解

Published:  at  09:59 PM

DML(Data Manipulation Language)数据操控语言

DML 主要用于 对表中的数据进行增、改、删操作,而不会影响表结构本身。
DML 的核心语句包括:


一、插入语句(INSERT)

1. 基本语法(推荐)

INSERT INTO 表名(列名1, 列名2, ...)
VALUES(值1, 值2, ...);

插入的值类型必须与列类型一致或兼容。


2. 插入示例

INSERT INTO student(name, age, score, birth)
VALUES('Leslie', 19, 100, '2001-02-14');

3. 可为 NULL 的列如何插入

对于 允许为 NULL 的列,有两种方式:

-- 方式一:显式赋值 NULL
INSERT INTO student(name, age, score, birth)
VALUES('John', 18, NULL, '2001-05-21');

-- 方式二:在列名中省略该列
INSERT INTO student(name, age, birth)
VALUES('Lala', 18, '2003-03-22');

⚠️ 不允许为 NULL 的列必须显式提供值。


4. 列顺序与省略列名

-- 列顺序可调整,只要和值一一对应
INSERT INTO student(name, score, age, birth)
VALUES('Lily', 56, 18, '2001-03-18');

-- 省略列名:必须与表结构顺序完全一致
INSERT INTO student
VALUES('Hugo', 19, 92, '2001-09-16');

5. 第二种插入方式(SET)

INSERT INTO student
SET name = 'Jax', age = 20;

特点:


6. 多行插入(推荐)

INSERT INTO student
VALUES
('boy1', 19, 92, '2001-09-16'),
('boy2', 19, 92, '2001-09-16'),
('boy3', 19, 92, '2001-09-16');

7. 插入子查询结果

INSERT INTO student(name)
SELECT 'Leslie';

仅第一种 INSERT INTO ... VALUES / SELECT 方式支持子查询。


二、修改语句(UPDATE)

1. 修改单表记录

语法

UPDATE 表名
SET 列1 = 新值1, 列2 = 新值2
WHERE 筛选条件;

⚠️ 不加 WHERE 会修改整张表的数据。

示例

UPDATE student
SET score = 99, age = 17
WHERE name LIKE '%boy%';

2. 修改多表记录

SQL99(推荐)

UPDATE 表1 别名
INNER JOIN 表2 别名
ON 连接条件
SET= 新值
WHERE 筛选条件;

示例

UPDATE boys bo
INNER JOIN beauty b ON bo.id = b.boyfriend_id
SET b.phone = '114'
WHERE bo.boyName = '张无忌';

三、删除语句(DELETE / TRUNCATE)

1. 使用 DELETE 删除数据

单表删除

DELETE FROM 表名
WHERE 筛选条件;
DELETE FROM student WHERE age = 18;

多表删除(SQL99)

DELETE 表别名
FROM 表1 别名
INNER JOIN 表2 别名 ON 连接条件
WHERE 筛选条件;
DELETE b
FROM beauty b
INNER JOIN boys bo ON b.boyfriend_id = bo.id
WHERE bo.boyName = '张无忌';

2. 使用 TRUNCATE 清空表

TRUNCATE TABLE boys;

3. DELETE 与 TRUNCATE 的区别

对比项DELETETRUNCATE
是否支持 WHERE✅ 支持❌ 不支持
执行效率较低较高
自增列从断点继续从 1 重新开始
返回值返回影响行数无返回值
是否可回滚✅ 可以❌ 不可以
本质DMLDDL

四、小结


Suggest Changes

Previous Post
数据定义语言DDL详解:库和表的管理
Next Post
SQL常用函数详解及应用示例