一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

在编写基础SQL SELECT查询时应该遵循哪些业内通用缩进规范

时间:2026-07-15 20:01:48 编辑:袖梨 来源:一聚教程网

SELECT关键字大写,字段每行一个且首字段缩进4空格,逗号前置;子句顶格对齐,条件缩进4空格;子查询多缩进4空格;操作符前后加空格,字段小写,别名与字段同行对齐。

SELECT 关键字和字段怎么对齐才不混乱

SELECT 后面的字段必须每行一个,且首个字段缩进 4 个空格(不是 Tab),后续字段左对齐在同一列。逗号写在字段**前面**,而不是后面——这样删字段时不用补逗号或删逗号,也不容易漏掉。

常见错误是把所有字段挤在一行,或者逗号放字段末尾导致增删字段时出错。比如 SELECT id, name, email FROM users 看似简洁,但加字段或注释某列时极易出错;而下面这种写法更稳健:

SELECT    id,    name,    emailFROM users

注意:字段名前不加表别名,在单表查询中虽能跑通,但一旦后续 JOIN 就会报错或返回歧义结果,所以建议从一开始就写成 users.id 或带别名的 u.id

WHERE 和 JOIN 子句的缩进层级怎么定

WHERE、FROM、JOIN、ORDER BY 等子句必须单独成行,且与 SELECT 左对齐(即顶格或统一缩进 0 空格)。子句内部的条件或连接条件,统一缩进 4 个空格。

容易踩的坑是把 ANDON 写在行尾,导致逻辑断裂、难以添加新条件。正确做法是让逻辑操作符顶格对齐在条件块左侧:

SELECT u.id, u.nameFROM users AS uJOIN orders AS o ON u.id = o.user_idWHERE u.status = 'active'    AND o.total > 100    AND o.created_at >= '2026-01-01'

如果 WHERE 条件太多,AND 必须换行后顶格对齐,不能缩进到跟 WHERE 同一列——否则视觉上会误以为它是 WHERE 的子内容,实际它是同级布尔操作符。

子查询缩进为什么必须多一层

子查询必须比外层多缩进 4 个空格,这是区分嵌套层级最直接的视觉信号。括号位置也有讲究:( 跟随 SELECT 换行后顶格,内部再缩进;右括号 ) 单独成行、与对应左括号垂直对齐。

不缩进子查询会导致结构模糊,尤其当嵌套两层以上时,根本分不清哪段属于哪层。例如:

SELECT    u.name,    (SELECT COUNT(*)        FROM orders o        WHERE o.user_id = u.id) AS order_countFROM users u

这里 SELECT COUNT(*) 整体比外层 SELECT 多缩进 4 空格;WHERE 条件又比子查询的 SELECT 多缩进 4 空格——逐层递进,一眼可辨。

另一个细节:AS 别名必须跟字段在同一行,且多个 AS 尽量对齐列,方便横向扫读。不要写成 order_count AS 这种反序形式。

空格和大小写的隐形影响

所有二元操作符(=>ANDBETWEEN)前后必须有空格;一元操作符如 NOT 后不加空格,紧贴条件。关键字统一用大写(SELECTFROM),字段和别名用小写或 snake_case,避免混用造成阅读干扰。

典型错误包括:WHEREstatus='active'(缺空格)、SELECT*FROM...(无空格+无字段列表)、AND(status='a'ORstatus='b')OR 前后没空格)。这些看似微小,但在多人协作或长期维护中,会显著拖慢定位速度。

真正难的不是记住规则,而是坚持——尤其在快速写临时查询时,很容易跳过缩进和空格。但只要一次没缩进,下次加条件就可能破坏整体结构。越简单的查询,越要按规范写,因为它们最常被复制、粘贴、改写。

热门栏目