跳转至

DML 基础语法详解

DML(Data Manipulation Language,数据操作语言)主要用于对数据库表中已存在的数据进行操作。

常见命令包括:

类型 命令 作用
插入数据 INSERT 向表中添加新行
更新数据 UPDATE 修改已存在的行
删除数据 DELETE 删除特定数据
查询数据 SELECT 检索数据(有时归类为 DQL)

一、INSERT(插入数据)

插入单行

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

示例:

INSERT INTO employees (id, name, salary)
VALUES (1, 'Alice', 6000);

省略列名(需所有列顺序一致)

INSERT INTO employees VALUES (2, 'Bob', 7000);

批量插入多行(MySQL / PostgreSQL 支持)

INSERT INTO employees (id, name, salary)
VALUES 
  (3, 'Cathy', 6500),
  (4, 'David', 8000);

基于查询插入(INSERT INTO ... SELECT)

INSERT INTO backup_employees (id, name, salary)
SELECT id, name, salary FROM employees WHERE salary > 7000;

💡 用于数据迁移或备份。


二、UPDATE(更新数据)

基本语法

UPDATE 表名
SET 1 = 新值1, 2 = 新值2, ...
WHERE 条件;

示例:

UPDATE employees
SET salary = salary + 500
WHERE department_id = 10;

⚠️ 没有 WHERE 会更新整张表!

三、DELETE(删除数据)

删除基本语法

DELETE FROM 表名
WHERE 条件;

示例:

DELETE FROM employees WHERE salary < 4000;

⚠️ 省略 WHERE 会删除整张表所有数据。

删除全部数据但保留结构

DELETE FROM employees;

💡 若要更快清空表(不记录日志):

TRUNCATE TABLE employees;

(属于 DDL,但效果类似)


四、SELECT(查询数据)

虽然通常归类为 DQL,但在 DML 学习中也必须掌握。

查询的基本语法

SELECT 1, 2, ...
FROM 表名
WHERE 条件
GROUP BY 分组列
HAVING 分组条件
ORDER BY 排序列
LIMIT 限制行数;   -- MySQL / PostgreSQL

示例:

SELECT name, salary
FROM employees
WHERE department_id = 1
ORDER BY salary DESC
LIMIT 5;

五、DML 与 DDL、DCL 区别

类别 全称 作用 示例
DML Data Manipulation Language 操作数据 INSERT / UPDATE / DELETE / SELECT
DDL Data Definition Language 定义结构 CREATE / ALTER / DROP / TRUNCATE
DCL Data Control Language 控制权限 GRANT / REVOKE

九、示例总结(最常用操作)

-- 插入数据
INSERT INTO users (id, name, age) VALUES (1, 'Lin', 25);

-- 更新数据
UPDATE users SET age = 26 WHERE id = 1;

-- 删除数据
DELETE FROM users WHERE id = 1;

-- 查询数据
SELECT id, name, age FROM users;