SQL分类详解:掌握DQL、DML、DDL等数据库语言类型

如果你是一名数据库运维工程师,或者正在学习数据库技术,那么理解SQL的不同类型是非常重要的。让我们一起看看SQL到底有哪些种类,以及它们各自的作用。

1. 什么是SQL?

SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它允许用户执行各种数据库操作,如查询数据、插入记录、更新记录、删除记录以及管理数据库结构等。

2. SQL语言分类

根据其功能和用途,SQL可以分为以下几类:

DQL (Data Query Language)
  • 主要动作 : SELECT

  • 描述 : DQL用于从数据库中查询数据。通常与FROMWHEREGROUP BYHAVINGORDER BY等关键字组合使用,以实现复杂的数据检索。

  • 示例 :

    sql 复制代码
    SELECT name, age FROM users WHERE age > 25 ORDER BY age DESC;
DML (Data Manipulation Language)
  • 主要动作: INSERT, UPDATE, DELETE
  • 描述: DML用于对数据库中的数据进行插入、更新和删除操作。这些语句是数据库中最常用的操作之一。
  • 示例:
sql 复制代码
 INSERT INTO users (name, age) VALUES ('Alice', 30);
UPDATE users SET age = 31 WHERE name = 'Alice';
DELETE FROM users WHERE name = 'Alice';
TCL (Transaction Control Language)
  • 主要动作: COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION
  • 描述: TCL用于控制数据库事务。COMMIT用于提交事务,ROLLBACK用于回滚事务,SAVEPOINT用于设置保存点,SET TRANSACTION用于设置事务的属性。
  • 示例:
sql 复制代码
BEGIN;
-- 执行一些操作
SAVEPOINT my_savepoint;
-- 继续执行一些操作
ROLLBACK TO my_savepoint;
COMMIT;
DCL (Data Control Language)
  • 主要动作: GRANT, REVOKE
    描述: DCL用于管理数据库用户的权限。GRANT用于授予用户权限,REVOKE用于撤销用户权限。
  • 示例:
sql 复制代码
GRANT SELECT, INSERT ON users TO alice;
REVOKE SELECT, INSERT ON users FROM alice;
DDL (Data Definition Language)
  • 主要动作: CREATE, ALTER, DROP, TRUNCATE
    描述: DDL用于定义或修改数据库结构。CREATE用于创建数据库对象(如表、视图等),ALTER用于修改现有对象,DROP用于删除对象,TRUNCATE用于清空表中的数据。
  • 示例:
sql 复制代码
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(100), age INT);
ALTER TABLE users ADD COLUMN email VARCHAR(100);
DROP TABLE users;
TRUNCATE TABLE users;
CCL (Cursor Control Language)
  • 主要动作: DECLARE CURSOR, FETCH INTO, UPDATE WHERE CURRENT
  • 描述: CCL用于控制游标。游标是一个指向结果集的指针,允许逐行处理数据。
  • 示例:
sql 复制代码
DECLARE cur CURSOR FOR SELECT * FROM users;
OPEN cur;
FETCH NEXT FROM cur INTO @name, @age;
CLOSE cur;

3. 数据库常见分类标准

在了解了SQL的分类后,我们再来看看数据库本身的分类。数据库可以根据不同的标准进行分类,以下是几种常见的分类方式:

按所管理的数据类型分类

结构化数据: 关系数据库(RDBMS, SQL, NewSQL)

描述: 结构化数据是指由二维表结构来逻辑表达和实现的数据。

半结构化数据: 非关系数据库(NoSQL)

描述: 半结构化数据是一种自描述结构,如JSON、XML等。

非结构化数据: 非关系数据库(NoSQL)

描述: 非结构化数据即无固定结构的数据,如GIS、文档、图片、音频/视频等。

混合格式数据: 多模数据库

描述: 多模数据库支持多个存储引擎,可以同时满足应用程序对于结构化、半结构化、非结构化数据的统一管理需求。

按应用场景分类

事务型数据库 (OLTP)

描述: 适用于高并发、单次数据量小的交易场景,如银行系统、电子商务等。

分析型数据库 (OLAP)

描述: 适用于低并发、单次数据量大且操作复杂度高的场景,如数据分析、报表生成等。

混合事务/分析数据库 (HTAP)

描述: 混合事务/分析数据库结合了OLTP和OLAP的特点,能够在同一个数据库中处理事务和分析任务,是未来的发展方向。

4. 实战案例:一次SQL优化经历

记得有一次,我们在一个项目中遇到了性能瓶颈。通过监控发现,某些SQL查询语句的执行时间异常长。经过分析,我们发现这些慢SQL主要是由于索引缺失和查询条件不合理导致的。

我们首先对这些慢SQL进行了优化,增加了必要的索引,并调整了查询条件。然后,我们使用了KingbaseES提供的性能分析工具,进一步优化了查询计划。最终,查询时间从原来的几十秒缩短到了几毫秒,大大提升了系统的响应速度。

在这个过程中,我们运用了一些SQL优化技巧,例如:

**索引优化:**为频繁查询的列添加索引,减少全表扫描。

查询条件优化:尽量避免使用复杂的子查询和连接操作,简化查询逻辑。

5. 总结

通过以上内容,我们了解了SQL的不同分类及其作用,以及数据库的常见分类标准。希望这些知识能帮助你在日常工作中更好地理解和使用SQL,提高数据库的性能和稳定性。

如果你在实践中还遇到过什么问题,或者有什么好的经验和建议,欢迎在评论区一起交流!我们一起加油,让运维工作更轻松,成本更低,不用再熬夜!

6. 推荐阅读

如何写高效的SQL语句

SQL优化技巧大全

数据库性能调优指南

希望这些资源能够帮助你进一步提升你的SQL技能!

相关推荐
yuzhiboyouye1 天前
内连接,左连接,右连接怎么区别开来?
数据库
铭毅天下1 天前
Easysearch 版本进化全图——从 ES 国产替代到 AI Native 搜索数据库
大数据·数据库·人工智能·elasticsearch·搜索引擎
muddjsv1 天前
SQL 最常用技能详解与实战示例
数据库·sql·mysql
muddjsv1 天前
大中小型企业数据配置年度成本估算分析
数据库·企业运营
塔能物联运维1 天前
存量机房升级成为行业主流方向:热管理重构算力中心价值路径
数据库
lqj_本人1 天前
鸿蒙electron跨端框架PC工志簿实战:项目、工时、阻塞和下一步都要有位置
数据库·华为·harmonyos
刘一说1 天前
AI科技热点日报 | 2026年5月22日
数据库·人工智能·科技
LCG元1 天前
RAG工程指南:从基础检索到生产部署全解析
java·运维·数据库
godspeed_lucip1 天前
LLM和Agent——专题3: Agentic Workflow 入门(1)
大数据·数据库·人工智能
南境十里·墨染春水1 天前
讲讲IO复用三个函数的底层逻辑
数据库