SQL 速查表 - 常用查询语法与示例大全

面向要写对业务又能跑快的 SQL 的开发者。SQL 的坑往往不在它本身,而在 NULL 的传播、GROUP BY 之后的筛选必须用 HAVING、窗口函数与普通聚合的边界这些最容易记混的地方。读完能写带分组、筛选子句的正确查询,用窗口函数做行号与同组内排名而非先 join 再自聚合,规避 NULL 比较与聚合陷阱,并在需要时把多条语句放进事务保证原子性。

数据库·共 35 条命令·最后更新 2026-08-02
sqldatabase查询db

基础查询 Basic 6

SELECT * FROM users
查询全部列
SELECT name, age FROM users
查询指定列
SELECT * FROM users WHERE age > 18
带条件过滤
SELECT DISTINCT city FROM users
去重
SELECT * FROM users LIMIT 10 OFFSET 20
分页(跳过 20 取 10)
SELECT * FROM users ORDER BY age DESC
排序(降序)

过滤与逻辑 Filtering 6

WHERE name LIKE 'A%'
前缀匹配,命中前缀通常可走索引;% 开头则无法用普通索引,容易退化为全表扫
WHERE name LIKE '%son'
后缀匹配,以 % 开头会失去索引能力,数据量大时应考虑全文索引或反向存储
WHERE age BETWEEN 18 AND 30
范围
WHERE id IN (1, 2, 3)
集合匹配
WHERE a IS NULL
空值判断;SQL 里 NULL ≠ 空串,a = NULL 永远为假,必须用 IS NULL/IS NOT NULL
WHERE a AND b OR c
逻辑组合(AND 优先于 OR)

聚合与分组 Aggregation 5

SELECT COUNT(*) FROM users
计数
SELECT AVG(age) FROM users
平均值
SELECT city, COUNT(*) FROM users GROUP BY city
分组
HAVING COUNT(*) > 5
分组后过滤(对聚合结果)
SELECT MAX(age), MIN(age) FROM users
最大/最小值

连接 JOIN 5

FROM a JOIN b ON a.id = b.a_id
内连接,只返回两边都能匹配的行;连接一对多表会放大父表行数,需注意去重
FROM a LEFT JOIN b ON a.id = b.a_id
左连接(保留 a 全部)
FROM a RIGHT JOIN b ON a.id = b.a_id
右连接
FROM a CROSS JOIN b
笛卡尔积,返回 a×b 全部组合,行数会暴涨;仅在结果集可预期很小(如常量表)时使用
SELECT * FROM a NATURAL JOIN b
按同名列自动连接

窗口函数 Window 4

ROW_NUMBER() OVER (ORDER BY age)
行号
RANK() OVER (PARTITION BY city ORDER BY age)
排名(并列跳号)
SUM(amount) OVER (PARTITION BY user_id)
分区累计
LAG(price) OVER (ORDER BY date)
取上一行

写入与事务 DML/TX 5

INSERT INTO t (a, b) VALUES (1, 'x')
插入
UPDATE t SET a = 2 WHERE id = 1
更新
DELETE FROM t WHERE id = 1
删除
BEGIN; ... COMMIT;
事务提交,把一组操作作为一个原子单元一次落盘,中途任一失败可回滚到 BEGIN 之前
ROLLBACK;
回滚事务,撤销本次事务内未提交的全部改动;多步操作用事务包裹更安全

表结构 DDL 4

CREATE TABLE t (id INT PRIMARY KEY, name TEXT)
建表
ALTER TABLE t ADD COLUMN age INT
加列
DROP TABLE t
删表
CREATE INDEX idx_name ON t(name)
建索引

提示

  • AND 优先级高于 OR,复杂条件务必加括号。
  • GROUP BY 的列必须出现在 SELECT(聚合列除外)。
  • LIKE 区分大小写取决于数据库排序规则。
  • 改数据前先用 BEGIN; 开启事务,确认后 COMMIT。

官方参考来源

下方为命令对应的官方权威文档,供你核对最新用法与深入查阅。

由 巧匠 维护

公开更新于 2026年8月2日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们