TL;DR
Query skeleton: SELECT cols FROM t WHERE cond GROUP BY col HAVING cond ORDER BY col LIMIT n; joins with JOIN ... ON; transactions with BEGIN / COMMIT / ROLLBACK.
Queries
| Scenario | SQL |
|---|
| Basic | SELECT a, b FROM t WHERE c = 1 |
| Distinct | SELECT DISTINCT a FROM t |
| Order + paginate | SELECT * FROM t ORDER BY id DESC LIMIT 10 OFFSET 0 |
| Fuzzy | WHERE name LIKE '%keyword%' |
| Group + having | SELECT dept, COUNT() FROM t GROUP BY dept HAVING COUNT() > 5 |
Joins
| Type | Meaning |
|---|
INNER JOIN | Rows matching both sides |
LEFT JOIN | All left rows + matches |
RIGHT JOIN | All right rows + matches |
FULL OUTER JOIN | All rows (not in every DB) |
DML
| Action | SQL |
|---|
| Insert | INSERT INTO t (a, b) VALUES (1, 'x') |
| Update | UPDATE t SET b = 'y' WHERE id = 1 |
| Delete | DELETE FROM t WHERE id = 1 (no WHERE = empty table) |
Transactions & Indexes
| Action | SQL |
|---|
| Transaction | BEGIN; ...; COMMIT; or ROLLBACK; |
| Index | CREATE INDEX idx_name ON t (col) |
| Explain | EXPLAIN SELECT ... |
Sources
最后更新:2026-08-02