SQL 命令根据其用途分为几类:DDL(定义 schema)、DML(操作数据)、DCL(控制访问)和 TCL(控制事务)。理解这些类别可以整理你的 SQL 知识,并明确该语言的结构方式。
DDL — Data Definition Language(定义结构)
users (id , name ());
users email ();
users;
logs;
SQL 命令根据其用途分为几类:DDL(定义 schema)、DML(操作数据)、DCL(控制访问)和 TCL(控制事务)。理解这些类别可以整理你的 SQL 知识,并明确该语言的结构方式。
users (id , name ());
users email ();
users;
logs;
DDL 定义和修改数据库 schema(表、列、索引、约束)。注意:DDL 语句通常自动提交(在许多数据库中,事务中通常无法回滚)。
SELECT * FROM users; -- read (sometimes classed as DQL)
INSERT INTO users VALUES (...); -- add rows
UPDATE users SET name = 'X' WHERE ..; -- modify rows
DELETE FROM users WHERE ...; -- remove rows
DML 处理表内部的数据 — 日常查询和修改。(SELECT 有时被分离为 DQL,Data Query Language。)
GRANT SELECT, INSERT ON users TO analyst; -- give permissions
REVOKE INSERT ON users FROM analyst; -- take them away
DCL 管理访问控制 — 对数据库对象授予和撤销权限(安全性)。
BEGIN; -- start a transaction
COMMIT; -- save all changes permanently
ROLLBACK; -- undo changes since the last commit
SAVEPOINT sp1; -- a partial rollback point
ROLLBACK TO sp1;
TCL 管理事务 — 提交、回滚和保存点(全有或全无保证)。
DDL → CREATE, ALTER, DROP, TRUNCATE — define/modify SCHEMA (structure)
DML → SELECT, INSERT, UPDATE, DELETE — work with DATA
DCL → GRANT, REVOKE — control ACCESS (permissions)
TCL → COMMIT, ROLLBACK, SAVEPOINT — control TRANSACTIONS
理解 DDL/DML/DCL/TCL 类别是有价值的知识,它整理了你对 SQL 的理解 — 为 SQL 执行的不同类型操作提供了清晰的思维框架,这有助于学习、讨论和推理数据库命令。
了解这些类别可以澄清不同的用途:DDL(定义和修改 schema — 表、索引、约束)、DML(日常数据操作 — 查询和修改行)、DCL(访问控制 — 用于安全性的权限)和 TCL(事务控制 — 提供数据完整性保证的 commit/rollback)。
这种分类很有用,原因有几个:它帮助你理解 SQL 作为完整语言的结构(而不仅仅是断开的命令),它澄清了重要的行为差异(例如 DDL 通常自动提交且无法回滚,与 DML 不同,DML 在事务中运行 — 这是一个重要的实际区别),它为讨论数据库操作提供了共享的词汇表。
理解 schema 定义(DDL)、数据操作(DML)、访问控制(DCL)和事务管理(TCL)是具有不同行为和用途的不同类别,这为你提供了一个关于 SQL 完整范围的连贯框架。
虽然理解 SQL 命令类别在概念上比特定技术更多,但它是有价值的基础知识,整理了你对 SQL 的总体理解,澄清了行为差异(如 DDL 自动提交),也是常见的面试话题,展示了对 SQL 语言及其不同操作领域的结构化理解 — 这是全面 SQL 知识的有用组织概念。