跳到内容

情境★★★★★7 分钟阅读

不是工程师也能用 AI 写 SQL

瞎信任 AI 生的 SQL 很危险。这篇给非工程师信心查资料的工作流。

登入以收藏

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_customers view?)
  • 区分长得很像的 column(created_at vs created_at_localrevenue vs gross_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 看到 userscustomers,选 users,但你要的是 customers
  • 缺软删除过滤 — AI 的 query 没含 WHERE deleted_at IS NULL 数到归档记录
  • 时区混乱 — AI 用 UTC 但你商业用本地;日期边界 off-by-one
  • 错聚合COUNT(*) vs COUNT(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 知识档;一个人的投资大家受益

最后更新: 2026-04-29

We use cookies

Anonymous analytics help us improve the site. You can opt out anytime. Learn more