AI 对需要从数据库拉数据的非工程师真的有变革性。PM、营销、ops、分析师,过去等工程师写 query 等几小时或几天,现在能自助。陷阱:AI 生的 SQL 错得够频繁,瞎信任会产出自信但错误的数字。错数字驱动错决策比没数据糟。
AI 对 SQL 做得好的
- 把自然语言翻成清楚单表 query 的 SQL
- 建议命名好的表之间的 JOIN 结构
- 一行一行解释既有 query 在做什么
- 把你找到的 query 适配你的 schema
- 跨方言生语法有效 SQL(PostgreSQL、MySQL、BigQuery、Snowflake 等)
AI 做得差的
- 知道你特定 schema 的怪癖(active customers 表是哪个 — 是
customers加 deleted_at IS NULL、还是active_customersview?) - 区分长得很像的 column(
created_atvscreated_at_local、revenuevsgross_revenue) - 抓到两个 column 可以 JOIN 但不该(资料型别像 foreign key 但没实际关系)
- 知道你软删除惯例、分区规则、商业过滤要求
- 效能优化 — 取决于 index 跟你没告诉它的资料量
能 work 的工作流
步骤一:喂 AI 你的 schema。 不要不给 context 问 SQL。给 Claude 或 GPT 你的 schema(表名、字段名、类型、每张表代表什么的简述)。几百张表的数据库,给问题相关的子集。
有用的招:先要 AI 摘要 schema。「根据这个 DDL,用 2 段摘要资料模型,标出任何看起来不寻常的。」AI 摘要错,你后续 query 就错。
步骤二:用自然语言加 context 问。 「从 orders 表 JOIN customers,给我 2025 Q3 总花费 top 10 客户,排除退款订单。花费格式化为 USD 货币。」
Context 越多 = query 越准。提到:时间范围、商业过滤(「排除测试帐号」)、输出格式要求、你在意的 edge case。
步骤三:跑之前读 query。 如果你不懂逐行,要 AI 解释。「用白话走过这个 query、每个子句做什么为什么。」有东西不符合你预期,改 prompt 重生。
步骤四:先在 sample 上跑。 加 LIMIT 100(或 WHERE date > '2025-12-01')在小切片上测试。结果合理,再扩到完整日期。
步骤五:健康检查输出。 count 符合你对商业量的预期吗?Top-N 结果有你认得的名字吗?有没 NULL 或 0 在预期外的地方?相信你的商业直觉;一个数字感觉太高或太低,挖为什么。
常见 AI SQL 失败
- 概念对的表错 — AI 看到
users跟customers,选users,但你要的是 customers - 缺软删除过滤 — AI 的 query 没含
WHERE deleted_at IS NULL数到归档记录 - 时区混乱 — AI 用 UTC 但你商业用本地;日期边界 off-by-one
- 错聚合 —
COUNT(*)vsCOUNT(DISTINCT customer_id)重要,AI 有时挑错 - 膨胀 JOIN — AI JOIN 表的方式让行倍增;总和变该有的 3 倍
- 写死测试数据 — AI 写对结构但用训练里的例子数据;你跑得到没东西
所有这些的修法:读 query、在 sample 上跑、健康检查。
建立每数据库知识档
你反复查的任何数据库,建一个 markdown 档含:
- Schema 总览
- 重要商业规则(「状态 'trial' 的客户应该从营收 query 排除」)
- 你踩过的常见坑(「events 表有重跑的重复;用 event_id 上 DISTINCT」)
- 标准过滤(「只 production 数据:env='prod'」)
- 你信任的存好 query
每次问 AI 那个数据库的 SQL 时把这档当 context 贴。准确度改善剧烈。
有帮助的工具
- Cursor / VS Code 加 AI — 写 SQL 有知道你 schema 的自动完成
- Hex / Mode / Metabase — 内建 AI 辅助 SQL 的分析平台
- Supabase / Neon SQL editor — 你已在用数据库的内建 AI
- dbt + AI — production 分析,AI 帮草拟你会审查跟版本管理的转换
随手 one-off query,ChatGPT 或 Claude 加 schema context 够。反复工作,知道你 schema 的整合工具快得多。
什么时候不要 AI 生 SQL
影响 production 的 query。 任何写(INSERT、UPDATE、DELETE)或影响 production 性能的。让工程师审。
合规相关资料。 拉 PII、要稽核的金融资料、或任何受监管的 query。query 跟输出需要稽核轨迹;AI 生成不太对得上。
对性能敏感的 query。 Query 会跑在百万行或 hot path,需要 AI 没有的 index 意识。让工程师优化。
关键报告数字。 给高层看或用来付佣金的数字需要三重检查。AI 生 query 给初稿 OK;验证没得商量。
数据品质陷阱
危险不是一次拿到错 SQL — 那很快被抓。危险是反复拿到细微错的 SQL,产出没人质疑、看似合理的数字。「客户 churn 上季 4.3%」感觉精准。Query 数错了,数字是虚构,但会被重复几个月。
培养习惯:任何驱动决策的数字都用对同一问题从不同角度跑、或问熟数据的人来验证。「这看起来对吗?」问分析师朋友 30 秒,防几个月错方向决策。
决策树
- One-off 好奇 query、低风险:AI 加 schema context、sample 测试
- 你会仰赖的反复报告:AI 出初稿、工程师审 production
- 面对客户或合规数据:工程师写,AI 只做解释
- 学 SQL:AI 当家教 + 自己写 query
下一步
- 为你最常查的数据库建 schema 知识档
- 跑前永远读 SQL;不懂的问 AI 解释
- 收藏好 query;有 work 的范例时 AI 重写更容易
- 团队工作分享 schema 知识档;一个人的投资大家受益