SQL六大核心类别全解析

SQL(结构化查询语言)根据其功能可分为六大核心类别,每类负责不同的数据库操作任务:


1. DDL:数据定义语言 (Data Definition Language)

功能 :定义/修改数据库 对象(表、视图、索引、数据库 等)的结构
核心语句

  • 创建数据库

    sql 复制代码
    CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
  • 查询所有数据库

    sql 复制代码
    SHOW DATABASES;
  • 使用数据库

    sql 复制代码
    USE 数据库名;
  • 删除数据库

    sql 复制代码
    DROP DATABASE [IF EXISTS] 数据库名;
  • 查询当前数据库

    sql 复制代码
    SELECT DATABASE();
  • 查询当前数据库所有表

    sql 复制代码
    SHOW TABLES;
  • 查询表结构

    sql 复制代码
    DESC 表名;
  • 查询指定表的建表语句

    sql 复制代码
    SHOW CREATE TABLE 表名;
  • 添加表当中的字段

    sql 复制代码
    ALTER TABLE 表名 ADD 字段名 类型 [COMMENT 注释] [约束];
  • 修改表中数据类型

    sql 复制代码
    ALTER TABLE 表名 MODIFY 字段名 新数据类型;
  • 修改表中字段名和字段类型

    sql 复制代码
    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 [COMMENT 注释] [约束];
  • `清空表数据(保留结构

    sql 复制代码
    TRUNCATE TABLE logs; -- 比 DELETE 更快,不可回滚
  • `重命名表名(部分数据库支持)

    sql 复制代码
    ALTER TABLE 旧表名 RENAME TO 新表名;
  • 删除表

    sql 复制代码
     DORP TABLE [IF EXISTS] 表名;  
  • 删除指定表,并重新创建该表

    sql 复制代码
     TRUNCATE TABLE 表名; 

2. DML:数据操作语言 (Data Manipulation Language)

功能 :操作 中的数据记录 (增、删、改)。
核心语句

  • 给指定字段插入数据

    sql 复制代码
    INSERT INTO 表名(字段名1,  字段名2, ...) VALUES (值1,  值2, ...);
  • 给全部字段插入数据

    sql 复制代码
    INSERT INTO 表名 VALUES (值1, 值2, ...); 
  • 批量添加数据

    sql 复制代码
     INSERT INTO 表名(字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), ...;
  • UPDATE:更新数据

    sql 复制代码
    UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... [WHERE 条件];
  • DELETE:删除数据(以行为单位)

    sql 复制代码
    DELETE FROM 表名 [WHERE 条件];

注意 :DML 操作需显式提交事务(COMMIT)才会永久生效。


3. DQL:数据查询语言 (Data Query Language)

功能 :从表中检索数据 (90%的SQL使用场景)。
唯一但核心语句

  • SELECT:查询数据

    sql 复制代码
    SELECT name, email FROM users WHERE id > 10 ORDER BY name;
  • 常搭配子句:
    WHERE(过滤)、JOIN(多表连接)、
    GROUP BY(分组)、HAVING(分组过滤)、
    ORDER BY(排序)、LIMIT(限制行数)、 SELECT (字段列表)

具体详细介绍可点击 ------ SQL查询实战:高效数据检索全攻略


4. DCL:数据控制语言 (Data Control Language)

功能 :管理数据库访问权限与安全性
核心语句

  • 查询用户

    sql 复制代码
    USE mysql; SELECT * FROM user;
  • 创建用户

    sql 复制代码
    GRANT USER '用户名'@'主机号' IDENTIFIED BY '密码';
  • 修改用户密码

    sql 复制代码
    ALTER USER '用户名'@'主机名' IDENTIFED WITH mysql_native_password BY '新密码';
  • 删除用户

    sql 复制代码
    DROP USER '用户名'@'主机号'; 
  • 授予权限

    sql 复制代码
    GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名'; 
  • 撤销权限

    sql 复制代码
    REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

5. TCL:事务控制语言 (Transaction Control Language)

功能 :管理数据库事务 (保证数据一致性)。
核心语句

  • BEGIN / START TRANSACTION:开启事务

  • COMMIT:提交事务(永久保存更改)

    sql 复制代码
    COMMIT;
  • ROLLBACK:回滚事务(撤销未提交的更改)

    sql 复制代码
    ROLLBACK;
  • SAVEPOINT:设置事务保存点(部分回滚)

    sql 复制代码
    SAVEPOINT sp1; -- 设置保存点
    ROLLBACK TO sp1; -- 回滚至保存点

6. 其他扩展类别

  • CCL:游标控制语言 (Cursor Control Language)
    用于遍历结果集(如 DECLARE CURSOR, FETCH, CLOSE)。

  • 存储过程/函数 (非纯SQL但广泛使用):

    sql 复制代码
    CREATE PROCEDURE GetUser(IN uid INT)
    BEGIN
      SELECT * FROM users WHERE id = uid;
    END;

分类总结对比

类别 功能 关键语句 是否自动提交
DDL 定义/修改结构 CREATE, ALTER, DROP 自动提交
DML 操作数据记录 INSERT, UPDATE, DELETE 需显式提交
DQL 查询数据 SELECT -
DCL 权限管理 GRANT, REVOKE 自动提交
TCL 事务控制 COMMIT, ROLLBACK, SAVEPOINT -

关键特性说明

  1. DDL 自动提交 :执行 CREATE/ALTER/DROP 后立即生效(无法回滚)。
  2. DML 需事务控制 :必须显式执行 COMMITROLLBACK 才能生效/撤销。
  3. DQL 不改变数据:仅查询,安全且可频繁使用。
  4. 权限最小化原则:通过 DCL 严格控制用户访问权限(如只读权限)。
  5. 事务的 ACID 保障:TCL 确保原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

掌握这些分类有助于编写高效、安全的 SQL 语句,并理解数据库操作的底层逻辑。

相关推荐
weixin_446260854 分钟前
Django - 让开发变得简单高效的Web框架
前端·数据库·django
mpHH17 分钟前
babelfish for postgresql 分析--todo
数据库·postgresql
zizisuo29 分钟前
解决在使用Lombok时maven install 找不到符号的问题
java·数据库·maven
老苏畅谈运维1 小时前
Oracle的connect by level在MySQL中的华丽变身
mysql·oracle
程序边界2 小时前
国产之光!金仓数据库KingbaseES Oracle兼容性深度体验大赏
数据库·oracle
A阳俊yi2 小时前
Spring——声明式事务
java·数据库·spring
A阳俊yi2 小时前
Spring——编程式事务
数据库·sql·spring
编程充电站pro2 小时前
SQL 多表查询常用语法速查:INNER JOIN / LEFT JOIN / RIGHT JOIN
数据库·sql
杨云龙UP3 小时前
SQL Server数据库事务日志问题的诊断与解法(从膨胀到瘦身)
运维·数据库·sql·sqlserver·serverless
周杰伦的稻香4 小时前
MySQL5.7.44编译安装
数据库·mysql