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 可回滚)。

相关推荐
STLearner1 天前
AI论文速读 | 当大语言模型遇上时间序列:大语言模型能否执行多步时间序列推理与推断
大数据·论文阅读·人工智能·深度学习·机器学习·语言模型·自然语言处理
老华带你飞1 天前
寝室快修|基于SprinBoot+vue的贵工程寝室快修小程序(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·贵工程寝室快修
fendouweiqian1 天前
idea中使用database TLS异常处理
数据库·https·intellij-idea
小志开发1 天前
SQL从入门到起飞:完整学习数据库与100+练习题
数据库·sql·学习·mysql·oracle·sqlserver·navcat
轩情吖1 天前
Qt常用控件之QLabel(一)
开发语言·数据库·c++·qt·小程序·qlabel·桌面开发
IT研究室1 天前
大数据毕业设计选题推荐-基于大数据的农产品交易数据分析与可视化系统-Spark-Hadoop-Bigdata
大数据·hadoop·数据分析·spark·毕业设计·源码·bigdata
汽车仪器仪表相关领域1 天前
工业安全新利器:NHQT-4四合一检测线系统深度解析
网络·数据库·人工智能·安全·汽车·检测站·汽车检测
lypzcgf1 天前
Coze源码分析-资源库-创建数据库-后端源码-安全与错误处理
数据库·安全·go·coze·coze源码分析·ai应用平台·agent平台
望获linux1 天前
【实时Linux实战系列】实时安全 C++ 模式:无异常、预分配与自定义分配器
java·linux·服务器·开发语言·数据库·chrome·tomcat