📄 一句话概括
SQL 的书写规矩其实就几条:一条语句一个分号、关键字随便大小写、一条语句建议占一行(或几行)、注释用 --——规矩少,但每条都是硬的。
📝 本节和前面几节的关系
3-1 把训练场搭好、认识了语句三零件;本节把【书写规矩】一次讲全——后面 20 节只学新命令,语法规矩全在本节。
一、语句:SQL 的一句话
语句(statement)=一条完整的指令,以分号 ; 结尾。DBMS 按分号切分:一个分号一条命令,逐条执行。
SELECT * FROM students; UPDATE students SET score = 60 WHERE id = 4;
一行里塞两条也能跑(分号分得清),但可读性差——正式写法一条占一行。
二、大小写:关键字不管,内容要管
| 东西 | 大小写敏感吗 |
|---|---|
| 关键字(SELECT、WHERE…) | 不敏感——select Select SELECT 一样跑 |
| 表名、列名 | 多数数据库不敏感,但建议照建表时的大小写抄 |
| 字符串值('张三') | 敏感——'张三' 和 '张叁' 是两个东西 |
惯例:关键字全大写、表名列名小写——大写关键字在语句里一眼可辨,读起来不费劲。
三、排版:一条语句一行的分节写法
语句一长,业界通用的排版是【关键字开头换行】:
SELECT name, score
FROM students
WHERE class = 1;
- 每个主要关键字起一行
- 缩进对齐
- 分号永远在最后
DBMS 不在乎你怎么换行(它只认分号),排版是给人看的——排查问题时能救命。
四、注释:给人看的备注
两种写法:
-- 这是单行注释:两个减号开头,管到行尾
SELECT * FROM students; -- 也可以写在语句后面
/* 这是多行注释
可以跨好几行 */
注释不会被执行,用途是留说明:【这句为什么查 class=1】——三个月后回看全靠它。
五、动手 Demo:同一条语句的三种写法
-- 写法一:挤一行(能跑,难读)
SELECT name, score FROM students WHERE class = 1;
-- 写法二:关键字换行(推荐)
SELECT name, score
FROM students
WHERE class = 1;
-- 写法三:小写关键字(能跑,不推荐)
select name, score from students where class = 1;
三种输出完全一样:张三 85、李四 92 两行。
看到什么算成功:三次运行结果一致,并且能说出【DBMS 只认分号和关键字,排版和大小写是给人看的】。
六、30 秒实验
在运行器里试两个小刁钻:
SELECT * FROM students;后面多敲几个分号——多余分号会报错吗?(多数工具不报,空语句被忽略;但别养成习惯)- 把字符串 '张三' 改成 '张三 '(尾巴多个空格)再当条件查——查不到!字符串值连一个空格都计较。
七、常见误区
- "SQL 和 C++ 一样区分大小写" —— 关键字不区分;字符串值区分。两者别混。
- "分号可有可无" —— 单条语句时很多工具宽容;一旦多条语句连发,少了分号立刻串行——分号永远写。
- "注释是给机器的" —— 注释机器直接跳过,纯粹是给人看的;正式 SQL 里【没注释的复杂语句】等于埋雷。
自测三问(点开对答案)
1. 语句以什么结束?DBMS 靠什么切分语句? **分号;按分号切分**。 2. 关键字和字符串值,谁区分大小写? **关键字不区分,字符串值区分**;惯例关键字全大写。 3. 单行注释和多行注释怎么写? **`--` 管到行尾;`/* ... */` 可跨行**。- ☐ 下一节(3-3 CREATE DATABASE、DROP DATABASE-创建和删除数据库)
相关笔记
- SQL命令-操作数据库的准备工作 —— 上一节:训练场与示例表已备好
- 🗄️ 数据库基础 · 索引 —— 全课路线图