SQLStructured Query Language
一句话
SQL 是操作关系型数据库的语言,用来查询、新增、修改和删除表里的数据。
大白话
SQL 像你递给仓库管理员的取货单:写明要哪张表、哪几列、满足什么条件、按什么顺序排,管理员照单取货。
比喻的边界
取货单写错一个条件,管理员不会追问,而是照做;一句删除或更新语句漏写条件,可能一次改掉整张表。
拿去就能用
我的表结构是,我想查出。帮我写一条只读的 SQL,逐行解释它在做什么,再告诉我怎么用两三条样例数据核对结果对不对。
还差:表名和字段、要查的结果,发给 AI 前记得换掉
这条 SQL 只查出 3 条,但表里应该有 5 条。我把语句和漏掉的两条数据贴在下面。帮我逐个检查筛选条件和表关联,找出它们为什么被过滤掉,先解释再改。
我要把用户输入的关键词放进 SQL 做搜索。帮我改成参数化查询,说明直接拼字符串为什么有注入风险,改完告诉我怎么用一个带引号的关键词测试。
别这样说 → 这样说
别这样说
帮我写个 SQL 查一下数据。
这样说
我有一张 orders 表,字段有 user_id、amount、created_at。帮我写一条只读的 SQL,查出最近 7 天每个用户的消费总额,按金额从高到低排,并解释每一行在做什么。
差别:给出了表结构和具体要查的结果,限定只读,还要求解释。
误解AI 写的 SQL 能跑通,结果就是对的。
其实是能运行只说明语法没错;条件或关联写错时照样会返回结果,只是多了或少了数据,要用你知道答案的样例数据核对。
展开专业理解
SQL 用 SELECT 查询、INSERT 新增、UPDATE 修改、DELETE 删除,还能用 JOIN 关联多张表、用 GROUP BY 汇总。PostgreSQL、MySQL、SQLite 都用 SQL,细节写法有差异。把用户输入直接拼进语句会导致 SQL 注入,应用代码应使用参数化查询,让数据库始终分清哪部分是代码、哪部分是数据。
来源
- PostgreSQL 文档:查询表 核对于 2026-09-26
- OWASP:SQL 注入防护速查表 核对于 2026-09-26