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

写 SQL 时最常用、最容易忘的语法都在这里,按查询、连接、聚合、窗口函数、事务分好类,配示例直接复制。

数据库·共 35 条命令·最后更新 2026-08-02
返回 数据库

基础查询 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
空值判断
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
笛卡尔积
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;
事务提交
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。

官方参考来源

命令整理自以下官方文档,点击核对最新用法。

由 LaoHand 维护

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

发现错误?反馈给我们

命令或描述有误?提交 issue 帮助我们修正。

发现错误?反馈给我们