SQL
中级通用
SQL 是用来查询和修改关系型数据库中数据的语言。它让你能按条件取出、汇总或更新记录,比如查出某位用户最近一周的订单,而不必把所有订单交给程序逐条筛选。
你可能会说:「帮我从订单数据里找出每位用户上周付了多少钱,不想把所有订单都读到程序里算。」
动手看看查询用户的近期订单
订单查询 · 数据快照截至 2025-03-31,共有 4 笔订单;下方展示数据库查询返回的结果。
SELECT id, created_at, amount
FROM orders WHERE user_id = 1001
AND created_at >= '2025-03-25';
查询结果 · 用户 1001
订单号 下单日期 金额
1042 2025-03-29 ¥128.00
用户
时间范围
查询操作
切换用户、时间范围和查询操作,对照 SQL 与结果;也可以悬停订单行。这里模拟数据库返回结果,不是真的连接数据库。
SELECT 指定要取哪些列,FROM 指定订单表,WHERE 指定条件。数据库只返回符合条件的订单,不必把全部订单交给程序逐条筛选。
要点SQL 怎样帮你处理产品数据?
- 1
先描述想要什么数据
写 SQL 时,你通常是在描述结果:从哪张表取数据、筛选哪些记录、按什么分组。比如后台要看每天的付款总额,就可以让数据库先汇总,再把结果返回给页面。
- 2
查询和修改都能用到它
SQL 不只用来读取数据,也能新增、更新和删除记录。你让 AI Agent 写修改订单状态的语句时,要说清楚目标订单和更新条件;条件写错,受影响的记录就可能超出预期。
- 3
动态输入交给参数处理
用户在搜索框输入的词,往往会成为查询条件。让程序通过参数传入这个值,而不是直接拼进 SQL 字符串,可以避免输入内容被当成语句的一部分执行。
容易混淆的地方
SQL 是操作数据的语言,不是存放数据的数据库;PostgreSQL 才是一种数据库系统。不同数据库支持的 SQL 写法会有差异,所以让 AI Agent 写语句时,告诉它项目用的是哪一种数据库,比只说“写一段 SQL”更容易得到能运行的结果。
什么时候用
适合用
- 做订单后台,需要按付款状态和日期筛选记录,并按天汇总销售额。
- 做用户管理功能,需要按用户编号查询资料或更新账户状态。
- 做报表接口,希望数据库先完成筛选和汇总,再返回少量结果。
不适合用
- 只是保存当前页面展开了哪个面板,这类临时界面状态放在前端状态中更合适。
- 要存用户上传的原始图片文件,可以用对象存储;数据库只记录文件地址和关联信息。
- 只能通过第三方服务提供的接口获取数据时,用它的 API,而不是尝试写 SQL 访问它的内部数据库。
练一练选一个答案,看看解释
你在做订单后台,要展示指定日期范围内每位用户已付款订单的总金额。订单存在 PostgreSQL 中,哪种做法更合适?
让 AI 帮你做复制给 AI Agent 直接用
项目使用 PostgreSQL。请为订单后台写一段 SQL:按传入的起止日期筛选已付款订单,按用户汇总订单金额。日期用参数传入;先说明你假设的表名和字段名,不要直接执行修改数据的语句。