⚡ SQL 常用查询模板
改表名和字段就能跑的日常查询
▸查询
SELECT * FROM orders ORDER BY created_at DESC LIMIT 20 OFFSET 0;分页查询:每页 20 条按时间倒序
SELECT status, COUNT(*) FROM orders GROUP BY status;按状态分组统计数量
SELECT DISTINCT user_id FROM orders WHERE amount > 1000;去重:哪些用户下过大单
SELECT o.*, u.name FROM orders o JOIN users u ON o.user_id = u.id;联表:订单带上用户名
· 分页查询:每页 20 条按时间倒序
· 按状态分组统计数量
· 去重:哪些用户下过大单
· 联表:订单带上用户名
▸写入与修改
INSERT INTO orders (user_id, amount, status) VALUES (1, 9900, 'pending');新增一行(金额单位分)
UPDATE orders SET status = 'paid' WHERE id = 42;带 WHERE 的更新——没有 WHERE 是全表灾难
UPDATE orders SET deleted_at = NOW() WHERE id = 42;软删除:打标记,不真删
· 新增一行(金额单位分)
· 带 WHERE 的更新——没有 WHERE 是全表灾难
· 软删除:打标记,不真删
▸排障
EXPLAIN SELECT ...;看查询执行计划:有没有走索引一目了然
SELECT COUNT(*) FROM orders;先数总数再谈分页和性能
· 看查询执行计划:有没有走索引一目了然
· 先数总数再谈分页和性能