TL;DR

查询骨架:SELECT 列 FROM 表 WHERE 条件 GROUP BY 列 HAVING 条件 ORDER BY 列 LIMIT n;连接用 JOIN ... ON;事务用 BEGIN / COMMIT / ROLLBACK

查询

场景SQL
基础查询SELECT a, b FROM t WHERE c = 1
去重SELECT DISTINCT a FROM t
排序分页SELECT * FROM t ORDER BY id DESC LIMIT 10 OFFSET 0
模糊WHERE name LIKE '%关键词%'
分组聚合SELECT dept, COUNT() FROM t GROUP BY dept HAVING COUNT() > 5

连接

类型说明
INNER JOIN两边都有才返回
LEFT JOIN左表全部 + 右表匹配
RIGHT JOIN右表全部 + 左表匹配
FULL OUTER JOIN全部保留(部分数据库不支持)

增删改

操作SQL
插入INSERT INTO t (a, b) VALUES (1, 'x')
更新UPDATE t SET b = 'y' WHERE id = 1
删除DELETE FROM t WHERE id = 1(忘写 WHERE 会清表)

事务与索引

操作SQL
事务BEGIN; ...; COMMIT;ROLLBACK;
建索引CREATE INDEX idx_name ON t (col)
查看执行计划EXPLAIN SELECT ...

来源

最后更新:2026-08-02