nineloong'sblog
首页归档照片墙音乐杂谈友链关于
封面
点击查看全图

MySQL-basic:SQL 通用语法与分类总览

2026/5/19
# MySQL-basic
# SQL
# DDL
# DML
# DQL
# DCL

SQL 通用语法与分类总览

本节内容

  • 固定 SQL 通用语法规则。
  • 回顾 DDL、DML、DQL、DCL 四类 SQL 的职责边界。
  • 指向 DDL/DML/DQL/DCL 各篇笔记。

SQL 通用语法规则

以下规则适用于 MySQL 9.6.0 中所有 SQL 语句。

大小写

  • SQL 关键字不区分大小写,但本笔记统一大写:SELECT、FROM、WHERE。
  • 数据库名、表名、字段名在 macOS 上区分大小写(取决于文件系统和 lower_case_table_names 设置)。为免踩坑,统一小写加下划线。
  • 字符串值区分大小写:'Tom' 和 'tom' 在 WHERE name = 'Tom' 中是不同的。

语句结尾

每条 SQL 语句以分号结尾:

SELECT VERSION();

在 mysql 客户端中,分号是默认的语句结束符。如果忘记分号,客户端会进入多行等待状态,在下一行继续输入直到收到分号。

空白与换行

SQL 忽略多余空格和换行。一条 SQL 可以写成一行,也可以拆成多行提高可读性:

SELECT id, name, age FROM tb_user WHERE age > 18;

-- 等价写法
SELECT id, name, age
FROM tb_user
WHERE age > 18;

注释

MySQL 支持三种注释:

-- 单行注释(注意 -- 后面必须有一个空格)

# 单行注释

/*
   多行注释
   可以跨越多行
*/

字符串

字符串统一使用单引号:

SELECT 'hello';

MySQL 在默认模式下也接受双引号,但标准 SQL 中双引号用于标识符引用,所以本笔记只用单引号。

如果字符串本身包含单引号,用两个连续单引号转义:

SELECT 'It''s a test';

标识符

标识符(数据库名、表名、字段名、别名)在不需要反引号时直接写:

SELECT name FROM tb_user;

如果名称恰好是 MySQL 保留字,用反引号括起来:

SELECT `from`, `to` FROM `order`;

本笔记的表名和字段名尽量避开保留字,减少反引号使用。

SQL 四分类总览

01 篇提过分类,这里再明确一下每一类的判断标准:

分类 全称 操作对象 典型动词 是否产生数据
DDL Data Definition Language 数据库对象(库、表、字段、索引) CREATE、DROP、ALTER 否(只改结构)
DML Data Manipulation Language 表中的数据行 INSERT、UPDATE、DELETE 是
DQL Data Query Language 表中的数据行 SELECT 否
DCL Data Control Language 用户和权限 GRANT、REVOKE 否

快速判断一句 SQL 属于哪一类:

  • 改结构 → DDL,改数据 → DML。
  • 查数据 → DQL。
  • 管用户和权限 → DCL。

各分类笔记入口

分类 状态
DDL 已发布
DML 待整理
DQL 待整理
DCL 待整理

本章参考

  • MySQL Reference Manual: SQL Statements
avatar

nineloong

一隅之地,深耕自我

RECOMMENDED

二分查找:从经典模板到应用题

2026/5/23

每日一题:检查数组是否经排序和轮转得到

2026/5/23

每日一题:统计特殊字母的数量 II

2026/5/27

Table of Contents