范叶亮写智能体、模型和数据系统时,习惯先把定义和边界钉死。把「SQL 样式指南」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。

一般原则

代码样式指南主要用于规范项目中代码的一致性,使得代码简单、可读和易于维护,从一定程度上也影响代码的质量。一句话概括如何评价代码的质量:

Google 针对大多数编程语言(例如:C/C++,Java,JavaScript,Python,R 等)都整理了相关的 代码风格 ,但对于 SQL 这种用于数据库查询特殊目的的编程语言并没有整理对应的风格。同其他编程语言代码风格一样,没有哪种风格是最好的,只要在项目中采用统一合理的风格即可。

命名惯例

/* Good */ SELECT id FROM table_name WHERE column = "test" ; /* Bad */ SELECT id FROM talbe_name WHERE column = "test" ; 多个元素组合无法呈现在一行中时,应将第一个元素另起一行。

/* Good */ SELECT CASE postcode WHEN 'BN1' THEN 'Brighton' WHEN 'EH1' THEN 'Edinburgh' END AS city FROM table_name ; /* Bad */ SELECT CASE postcode WHEN 'BN1' THEN 'Brighton' WHEN 'EH1' THEN 'Edinburgh' END AS city FROM table_name ; 由括号构成的多行,结尾括号应单独一行。

对齐和换行

/* Good */ SELECT id FROM table_name WHERE postcode IN ( 'looooooooooooooooooooooooong_BN1' , 'loooooooooooooooooooooooooog_EH1' ) /* Bad */ SELECT id FROM table_name WHERE postcode IN ( 'looooooooong_BN1' , 'looooooooong_EH1' ) 多行采用右侧逗号和左侧关键字连接。

/* Good */ SELECT id , name FROM talbe_name WHERE id > 1 AND name LIKE "%Tom%" ; /* Bad */ SELECT id , name FROM table_name WHERE id > 1 AND name LIKE "%Tom%" ; 根关键词建议单独一行,多个参数单独一行。

明确指定

/* Good */ SELECT id , name FROM table_name WHERE id > 1 AND name LIKE "%Tom%" LIMIT 10 ; /* Acceptable */ SELECT id , name FROM table_name WHERE id > 1 AND name LIKE "%Tom%" LIMIT 10 ; /* Bad */ SELECT id , name FROM table_name WHERE id > 1 AND name LIKE "%Tom%" LIMIT 10 ; 明确指定 使用 AS 明确指定别名,而非隐式。

/* Good */ SELECT table_name_1 . id AS user_id , table_name_2 . name AS user_name FROM looooooooong_table_name_1 AS table_name_1 LEFT JOIN looooooooong_table_name_2 AS table_name_2 ON table_name_1 . id = table_name_2 . id ; /* Bad */ SELECT table_name_1 . id user_id , table_name_2 . name user_name FROM looooooooong_table_name_1 table_name_1 LEFT JOIN looooooooong_table_name_2 table_name_2 ON table_name_1 . id = table_name_2 . id ; 避免使用隐式关联。

子查询

/* Good */ SELECT table_name_1 . id , table_name_2 . name FROM table_name_1 INNER JOIN table_name_2 ON table_name_1 . id = table_name_2 . id ; /* Bad */ SELECT table_name_1 . id , table_name_2 . name FROM table_name_1 , table_name_2 ON table_name_1 . id = table_name_2 . id ; 明确关联类型。

/* Good */ SELECT table_name_1 . id , table_name_2 . name FROM table_name_1 INNER JOIN table_name_2 ON table_name_1 . id = table_name_2 . id ; /* Bad */ SELECT table_name_1 . id , table_name_2 . name FROM table_name_1 JOIN table_name_2 ON table_name_1 . id = table_name_2 . id ; 明确指定分组列。

其他

/* Good */ SELECT submission_date , normalized_channel IN ( 'nightly' , 'aurora' , 'beta' ) AS is_prerelease , COUNT ( * ) AS count FROM telemetry . clients_daily WHERE submission_date > '2019-07-01' GROUP BY submission_date , is_prerelease ; /* Bad */ SELECT submission_date , normalized_channel IN ( 'nightly' , 'aurora' , 'beta' ) AS is_prerelease , COUNT ( * ) AS count FROM telemetry . clients_daily WHERE submission_date > '2019-07-01' GROUP BY 1 , 2 ; 子

/* Good */ WITH sample AS ( SELECT client_id , submission_date FROM main_summary WHERE sample_id = '42' ) SELECT * FROM sample LIMIT 10 /* Bad */ SELECT * FROM ( SELECT client_id , submission_date FROM main_summary WHERE sample_id = '42' ) LIMIT 10 尽量在 CTEs 中处理查询而非主语句中。

值得单独记下的点

  • https://www.sqlstyle.guide/zh/
  • https://about.gitlab.com/handbook/business-technology/data-team/platform/sql-style-guide/
  • https://docs.telemetry.mozilla.org/concepts/sql_style.html
  • https://github.com/mattm/sql-style-guide
  • 使用空格(2 个或 4 个,项目中保持一致),避免使用 TAB 缩进。
  • 在 SQL 中加入必要的注释,块注释使用 /* */ ,行注释使用 — ,并在末尾换行。
  • 运算符前后添加空格,逗号 , 后添加空格,避免行尾有空格。
  • 关键词、函数名称采用大写,字段名、表名采用小蛇式(lower snake case)命名。

落地时建议先做的 5 件事

  1. 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。
  2. 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。
  3. 多智能体只在单智能体触到上下文或专业边界时再拆。
  4. Token、微调和压缩都要有对照数字,避免口号式优化。
  5. 结论写成可检查清单:接口、超时、评测集、回滚版本。

和智能体产品怎么接

龙虾PRO做 OpenClaw 落地时,最该拿走的是「单智能体先做好工具和提示,再谈编排」。数字员工、技能市场和网关应共用同一套评测与权限,而不是各写一套角色人设。

本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源

常见问题 FAQ

什么是AI智能系统?

「AI智能系统」可概括为:代码样式指南主要用于规范项目中代码的一致性,使得代码简单、可读和易于维护,从一定程度上也影响代码的质量。一句话概括如何评价代码的质量: 本文从定义、方法与实践要点展开说明。

为什么要关注AI智能系统?

关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:代码样式指南主要用于规范项目中代码的一致性,使得代码简单、可读和易于维护,从一定程度上也影响代码的质量。一句话概括如何评价代码的质量:

如何落地AI智能系统?有哪些关键步骤?

建议按以下路径推进AI智能系统:1) https://www.sqlstyle.guide/zh/;2) https://about.gitlab.com/handbook/business-technology/data-team/platform/sql-st…;3) https://docs.telemetry.mozilla.org/concepts/sql_style.html;4) https://github.com/mattm/sql-style-guide;5) 使用空格(2 个或 4 个,项目中保持一致),避免使用 TAB 缩进。。细节见正文对应章节。

AI智能系统适合哪些人或团队?

AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。

关于「一般原则」,本文给出了什么结论?

在「一般原则」部分,要点是:编程语言并没有整理对应的风格。同其他编程语言代码风格一样,没有哪种风格是最好的,只要在项目中采用统一合理的风格即可。 命名惯例 /* Good */ SELECT id FROM table_name WHERE column = "test" ; /* Bad */ SELECT id FROM talbe_name WHERE column = "test" ; 多个元素组合无法呈现在一行中时,应将第一个元素另起一行。 /* Goo

关于「命名惯例」,本文给出了什么结论?

在「命名惯例」部分,要点是:oooooooooooooooooooog_EH1' ) /* Bad */ SELECT id FROM table_name WHERE postcode IN ( 'looooooooong_BN1' , 'looooooooong_EH1' ) 多行采用右侧逗号和左侧关键字连接。 /* Good */ SELECT id , name FROM talbe_name WHERE id > 1 AND name LIKE "%To