🧱 1. DDL(Data Definition Language)数据定义语言
🔧 作用:
用于定义数据库结构(如数据库、表、视图、索引等),即创建或修改数据库中的“结构”。
⚙️ 原理:
DDL 命令在执行时,会在系统的元数据(metadata)中记录或更新结构信息。
📌 常用命令:
CREATE:创建数据库对象(表、视图等)ALTER:修改表结构(增加、修改字段)DROP:删除数据库对象TRUNCATE:快速清空表数据
🌍 应用范围:
设计和管理数据库架构
🧪 应用场景举例:
- 在新系统上线前创建数据库表:
sql
CopyEdit
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
- 变更表结构,如新增列:
sql
CopyEdit
ALTER TABLE users ADD COLUMN created_at TIMESTAMP;
📝 2. DML(Data Manipulation Language)数据操作语言
🔧 作用:
用于对数据库表中的数据进行操作(增、删、改、查)。
⚙️ 原理:
DML 操作一般只影响数据,不影响结构。操作会被记录在日志中,以便恢复。
📌 常用命令:
SELECT:查询数据INSERT:插入新数据UPDATE:更新已有数据DELETE:删除数据
🌍 应用范围:
日常的数据管理与业务操作
🧪 应用场景举例:
- 插入用户数据:
sql
CopyEdit
INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.com');
- 查询所有用户:
sql
CopyEdit
SELECT * FROM users;
- 更新用户邮箱:
sql
CopyEdit
UPDATE users SET email = 'new@example.com' WHERE id = 1;
🛡️ 3. DCL(Data Control Language)数据控制语言
🔧 作用:
用于控制对数据库的访问权限和安全性。
⚙️ 原理:
通过系统权限管理模块对用户权限进行管理(授予或撤销)。
📌 常用命令:
GRANT:授予权限REVOKE:撤销权限
🌍 应用范围:
数据库安全管理、权限分配
🧪 应用场景举例:
- 给用户授予查询权限:
sql
CopyEdit
GRANT SELECT ON users TO analyst;
- 撤销用户的删除权限:
sql
CopyEdit
REVOKE DELETE ON users FROM analyst;
🔁 4. TCL(Transaction Control Language)事务控制语言
🔧 作用:
用于管理数据库事务(事务是数据库操作的一个最小单元,具有原子性、一致性、隔离性、持久性,即 ACID)。
⚙️ 原理:
TCL 保证一系列数据库操作要么全部成功,要么全部失败(回滚)。
📌 常用命令:
BEGIN或START TRANSACTION:开始事务COMMIT:提交事务ROLLBACK:回滚事务SAVEPOINT:设置保存点SET TRANSACTION:设置事务属性
🌍 应用范围:
对需要数据一致性的操作进行控制,如金融转账、订单处理等。
🧪 应用场景举例:
- 银行账户转账操作:
sql
CopyEdit
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
如果中间发生错误,则:
sql
CopyEdit
ROLLBACK;
✅ 总结对比表格
| 模型 | 全称 | 作用 | 常用语句 | 应用场景 |
|---|---|---|---|---|
| DDL | Data Definition Language | 定义数据库结构 | CREATE, ALTER, DROP, TRUNCATE | 创建表、添加字段 |
| DML | Data Manipulation Language | 操作数据 | SELECT, INSERT, UPDATE, DELETE | 数据增删改查 |
| DCL | Data Control Language | 控制权限 | GRANT, REVOKE | 分配用户权限 |
| TCL | Transaction Control Language | 控制事务 | BEGIN, COMMIT, ROLLBACK | 银行转账、订单提交 |