news 2026/6/28 10:43:46

MySQL 全套 SQL 语法系统性梳理|语句分类、标准规范、易错点汇总

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 全套 SQL 语法系统性梳理|语句分类、标准规范、易错点汇总

前言

本文为本学期《MySQL 数据库技术》课程课后知识复盘原创文档,梳理课堂全部标准 SQL 语法,包含通用语法规则、语句定义、使用约束与易混淆知识点,覆盖 DDL、DML、DCL、TCL 四大 SQL 体系与数据表约束。 本文全部采用通用抽象表名、字段演示语法结构。

参考资料:MySQL 8.0 官方开发文档

一、SQL 语句整体四大分类

SQL 按照功能分为四类,各司其职,边界清晰:

表格

分类缩写英文全称核心功能定位代表语句关键词
DDLData Definition Language 数据定义语言定义 / 修改 / 删除数据库、数据表结构CREATEDROPALTERTRUNCATE
DMLData Manipulation Language 数据操作语言对表内存储的数据行进行增删改查SELECTINSERTUPDATEDELETE
DCLData Control Language 数据控制语言管理数据库账号、分配 / 回收访问权限CREATE USERGRANTREVOKEDROP USER
TCLTransaction Control Language 事务控制语言管理 InnoDB 引擎事务提交、回滚逻辑START TRANSACTIONCOMMITROLLBACKSAVEPOINT

二、DDL 数据定义语言(仅操作库、表结构,不操作数据行)

2.1 数据库层级操作语句

2.1.1 创建数据库

标准语法

sql

语法规则 & 易错点 ⚠️
  1. IF NOT EXISTS可选,作用:数据库不存在时才创建,规避 “库已存在” 报错;省略则库重复会直接抛出异常;
  2. MySQL 内置utf8字符集存在存储长度限制,通用标准字符集为utf8mb4
  3. 数据库名若为 MySQL 系统关键字,必须使用反引号`包裹名称;
  4. 字符集与校对规则可省略,自动继承 MySQL 全局默认配置。

2.1.2 数据库通用管理语句

sql

2.2 数据表层级操作语句

2.2.1 创建数据表

标准语法

sql

语法规范 💡
  1. COMMENT为注释关键字,可给表、字段添加描述文本,便于维护;
  2. InnoDB是默认事务型存储引擎,MyISAM不支持事务、外键;
  3. AUTO_INCREMENT自增属性仅能赋值给整数类型主键字段。

2.2.2 修改数据表 ALTER TABLE

  1. 新增字段

sql

  1. 修改字段数据类型、约束

sql

  1. 修改字段名称 + 类型

sql

  1. 删除指定字段

sql

  1. 修改数据表名称

sql

2.2.3 清空表、删除整张表

sql

TRUNCATE 与 DELETE 核心区分 ⚠️

表格

语句语句类型事务支持自增主键执行逻辑
TRUNCATEDDL 结构语言不支持回滚自动重置为初始值销毁原表、重建空表
DELETEDML 数据语言支持事务回滚保持原有数值逐行删除数据记录

三、DML 数据操作语言(仅操作表内存储的数据行)

3.1 SELECT 查询语句(完整标准语法顺序,顺序不可调换)

sql

各子句语法说明

  1. DISTINCT:去重关键字,消除查询结果中完全重复的数据行;
  2. JOIN关联分类:
    • INNER JOIN:仅返回两张表匹配成功的数据;
    • LEFT JOIN:完整保留左表全部数据,右表无匹配字段填充NULL
  3. WHERE:对原始未分组的数据行做过滤,不能使用聚合函数
  4. GROUP BY:按指定字段对数据分组,搭配聚合函数使用;
  5. HAVING:仅能对GROUP BY分组完成后的结果过滤,支持聚合函数
  6. ORDER BY:排序,ASC升序(默认)、DESC降序;
  7. LIMIT:限制返回行数,参数 1 为偏移下标,参数 2 为读取条数;单参数时代表 “读取前 N 行”。

聚合函数通用定义

COUNT()统计行数、SUM()求和、AVG()平均值、MAX()最大值、MIN()最小值。

查询语法高频易错点 ⚠️

  1. SELECT *代表查询表全部字段,标准化开发中禁止使用,仅按需查询所需字段;
  2. LIKE '%关键词'前置通配符会导致索引失效,海量数据场景需规避;
  3. GROUP BY后 SELECT 子句仅允许出现分组字段或聚合函数,严格模式下语法报错。

3.2 INSERT 插入数据语句

语法 1:单行插入

sql

语法 2:多行批量插入

sql

语法 3:查询结果写入表

sql

语法规范 💡

必须显式书写插入字段列表;省略字段列表时,值必须完整匹配表全部字段顺序,表结构变更后极易报错。

3.3 UPDATE 更新数据语句

sql

致命易错点 ⚠️

省略WHERE条件会更新表内全部数据行,语法无报错但会造成全表数据篡改风险。

3.4 DELETE 删除数据语句

sql

开发规范 💡

标准数据存储设计不使用物理删除;增加is_delete标记字段,通过UPDATE修改标记替代DELETE物理删除语句。


四、DCL 数据控制语言(账号、权限管理,数据库管理员专用)

4.1 创建数据库账号

sql

  • localhost:仅本地服务器登录;%:允许任意远程 IP 访问。

4.2 授予访问权限 GRANT

sql

4.3 回收已有权限 REVOKE

sql

4.4 删除数据库账号

sql

权限操作易错点 ⚠️

新增 / 回收权限后,必须执行FLUSH PRIVILEGES;刷新权限配置,修改才会即时生效。


五、TCL 事务控制语言(仅 InnoDB 存储引擎支持)

基础语法

sql

事务核心注意事项 ⚠️

DDL 类语句(CREATE/ALTER/DROP/TRUNCATE)执行时会自动提交当前未完成事务,事务流程中禁止执行 DDL 语句。

补充概念:事务 ACID 四大特性

  1. 原子性 (Atomic):事务内操作要么全部执行,要么全部撤销;
  2. 一致性 (Consistent):事务执行前后数据完整性约束不被破坏;
  3. 隔离性 (Isolated):多并发事务之间操作互不干扰;
  4. 持久性 (Durable):事务提交后,数据修改永久保存,宕机不丢失。

六、数据表字段约束语法(建表配套规则)

所有约束用于限制字段数据合法性,分为字段级约束、表级约束:

  1. PRIMARY KEY主键约束:字段唯一且非空,单张表仅允许 1 个主键;
  2. UNIQUE唯一约束:字段值不可重复,允许存在 1 条NULL记录;
  3. NOT NULL非空约束:字段插入数据时必须赋值,禁止为空;
  4. DEFAULT默认值约束:字段无赋值时,自动填充预设默认值;
  5. FOREIGN KEY外键约束:关联两张表字段,维护表之间数据完整性;
  6. CHECK检查约束(MySQL8.0 及以上完整支持):限定字段数值范围。

CHECK 约束语法示例

sql


七、学习复盘与问题总结

7.1 学习过程高频踩坑梳理

  1. 混淆TRUNCATEDELETE属性:误使用 TRUNCATE 清空测试表以外的数据,无事务回滚补救手段; 解决思路:区分 DDL/DML 语句属性,清空存量数据优先 DELETE;
  2. UPDATE/DELETE省略 WHERE 条件,触发全表操作; 解决思路:执行修改 / 删除前,先用 SELECT 校验过滤条件范围;
  3. 字符集选用旧版 utf8,特殊字符、表情存储乱码; 解决思路:新建库、表统一指定 utf8mb4 字符集;
  4. 事务中执行 ALTER/CREATE 等 DDL,事务被自动提交,回滚失效; 解决思路:事务流程仅执行 SELECT/INSERT/UPDATE/DELETE,结构修改单独执行。

7.2 学习疑问与理论解答

疑问:事务隔离级别存在什么区别,如何调整?

解答:MySQL InnoDB 默认隔离级别为可重复读,共 4 级隔离级别,分别解决脏读、不可重复读、幻读三类并发问题; 查询当前隔离级别:SELECT @@transaction_isolation;修改会话隔离级别语法:SET SESSION TRANSACTION ISOLATION LEVEL 隔离级别名称;


结语

本文完整覆盖课堂全部 SQL 标准语法,系统梳理了 DDL、DML、DCL、TCL 四大类 SQL 语句的通用语法结构、核心定义、使用规则与字段约束,清晰区分了四类语句的功能边界与适用场景,全面整理了日常学习与实操过程中的标准写法与高频通用踩坑点,适合数据库入门初学者用作通用学习资料

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/28 10:43:21

QQScreenShot:独立截图工具终极指南 - 三步完成高效截图与OCR识别

QQScreenShot:独立截图工具终极指南 - 三步完成高效截图与OCR识别 【免费下载链接】QQScreenShot 电脑QQ截图工具提取版,支持文字提取、图片识别、截长图、qq录屏。默认截图文件名为ScreenShot日期 项目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot …

作者头像 李华
网站建设 2026/6/28 10:43:00

终极解决方案:GBK.js - 浏览器端字符编码处理的完整指南

终极解决方案:GBK.js - 浏览器端字符编码处理的完整指南 【免费下载链接】GBK.js 小而快的GBK库,支持浏览器端 项目地址: https://gitcode.com/gh_mirrors/gb/GBK.js 你是否曾经在前端开发中遇到过中文乱码问题?当你的应用需要处理GBK…

作者头像 李华
网站建设 2026/6/28 10:40:49

微生物组学数据分析新利器:microeco R包全解析

微生物组学数据分析新利器:microeco R包全解析 【免费下载链接】microeco An R package for downstream data analysis of microbiome omics data 项目地址: https://gitcode.com/gh_mirrors/mi/microeco 在当今微生物生态学研究领域,面对海量的1…

作者头像 李华
网站建设 2026/6/28 10:33:57

信息系统项目管理师论文冲刺必备:1套万能框架+4类典型项目选题对照表+8个可复用技术亮点话术

更多请点击: https://codechina.net 第一章:信息系统项目管理师论文写作总纲 信息系统项目管理师论文写作是高级资格考试中极具区分度的环节,其核心在于将真实项目经验与十大知识领域、五大过程组有机融合,体现理论指导实践、实践…

作者头像 李华
网站建设 2026/6/28 10:29:48

【CDA干货】3分钟搞懂决策树分析,帮你快速提升决策效率!

在众多数据分析模型中,决策树是最为简单直观的一种算法。它就像我们平常做决定时的过程,逐步排除可能的选项,最终得出结论。决策树是一种监督学习方法,广泛应用于分类和回归任务。它以树状结构模拟决策过程,通过一系列…

作者头像 李华