SQL(结构化查询语言)的四大核心分类
这张图展示了 SQL(结构化查询语言)的四大核心分类,分别对应不同的数据库操作场景。以下是逐类解析:
1. 数据操作语言(DML:Data Manipulation Language)
作用:用于操作数据库中的数据(增、删、改、查),是日常业务中最频繁使用的 SQL 语句。
包含操作:
选择(SELECT):查询表中的数据(如 SELECT * FROM table;)。
插入(INSERT):向表中添加新数据(如 INSERT INTO table (col1, col2) VALUES (val1, val2);)。
更新(UPDATE):修改表中已有数据(如 UPDATE table SET col1 = new_val WHERE condition;)。
删除(DELETE):删除表中数据(如 DELETE FROM table WHERE condition;)。
合并(MERGE):合并 “更新” 和 “插入” 逻辑(如 Oracle 的 MERGE INTO,当记录存在时更新,不存在时插入)。
2. 数据定义语言(DDL:Data Definition Language)默认提交
作用:用于定义或修改数据库对象的结构(如表、视图、索引等),属于 “元数据操作”。
包含操作:
创建(CREATE):新建数据库对象(如 CREATE TABLE table (col1 INT, col2 VARCHAR);)。
修改(ALTER):修改已有对象结构(如 ALTER TABLE table ADD COLUMN col3 INT;)。
删除(DROP):删除数据库对象(如 DROP TABLE table;)。
重命名(RENAME):修改对象名称(如 RENAME TABLE old_name TO new_name;)。
截断(TRUNCATE):快速清空表数据(比 DELETE 更快,不记录单行删除日志,如 TRUNCATE TABLE table;)。
注释(COMMENT):为表或列添加描述(如 COMMENT ON TABLE table IS '用户表';)。
3. 数据控制语言(DCL:Data Control Language)
作用:用于管理数据库的访问权限,控制用户对数据库对象的操作能力。
包含操作:
授予(GRANT):赋予用户权限(如 GRANT SELECT, INSERT ON table TO user;)。
撤销(REVOKE):收回用户权限(如 REVOKE DELETE ON table FROM user;)。
4. 事务控制语句(Transaction Control)
作用:用于管理数据库事务,保证数据的一致性和完整性(满足事务的 ACID 特性:原子性、一致性、隔离性、持久性)。
包含操作:
提交(COMMIT):将事务中的修改永久保存到数据库(如 COMMIT;)。
回滚(ROLLBACK):撤销事务中的所有修改,回到事务开始前的状态(如 ROLLBACK;)。
保存点(SAVEPOINT):在事务中设置 “checkpoint”,允许回滚到特定点(而不是整个事务)(如 SAVEPOINT sp1; + ROLLBACK TO sp1;)。
额外说明:DQL(数据查询语言)的归属
严格来说,SQL 还包含 DQL(Data Query Language,数据查询语言),核心是 SELECT 语句。但在这张图中,SELECT 被归为 DML(部分资料也会将查询归为 DML 的子集)。若细分,DQL 可独立为一类,专注于 “数据查询”。
总结
SQL 通过分层分类,让数据库操作更清晰:
DML 管 “数据内容”,
DDL 管 “结构定义”,
DCL 管 “权限控制”,
事务控制 管 “数据一致性”。
这种分类让开发者能快速定位 SQL 的用途,避免混淆不同操作的影响(如 DDL 会隐式提交事务,而 DML 可回滚)。