PostgreSQL SELECT 实用教程(常用语法 + 易错坑点)
SELECT 完整语法顺序(最重要!执行顺序≠书写顺序)
✅ 书写顺序(你写SQL的顺序)
SELECT 列
FROM 表
WHERE 行过滤
GROUP BY 分组
HAVING 分组后过滤
ORDER BY 排序
LIMIT / OFFSET 分页
FROM 表
WHERE 行过滤
GROUP BY 分组
HAVING 分组后过滤
ORDER BY 排序
LIMIT / OFFSET 分页
⚠️ 数据库【执行顺序】(非常容易踩坑)
信息
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
关键点: 1. WHERE 在SELECT之前执行,WHERE里不能使用select别名 2. HAVING在GROUP之后,可以使用聚合函数;WHERE不能用聚合函数
最常用基础 SELECT 写法
-- 查询指定字段(推荐!不要用 select *)
SELECT id, name, create_time FROM users;
-- 带别名 AS,AS可以省略
SELECT id AS user_id, name AS uname FROM users;
-- 条件过滤 WHERE
SELECT * FROM users WHERE age >= 18 AND status = 1;
-- 模糊匹配 LIKE,%代表任意字符
SELECT * FROM users WHERE name LIKE '张%';
-- IN 多值匹配
SELECT * FROM users WHERE id IN (1,3,5,7);
-- 范围 BETWEEN ... AND 包含两端边界
SELECT * FROM orders WHERE amount BETWEEN 100 AND 1000;
注意
❌ 易错:BETWEEN 是闭区间!BETWEEN 100 AND 1000 等价 >=100 AND <=1000,时间查询经常踩坑。