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

ScenarioSQL
BasicSELECT a, b FROM t WHERE c = 1
DistinctSELECT DISTINCT a FROM t
Order + paginateSELECT * FROM t ORDER BY id DESC LIMIT 10 OFFSET 0
FuzzyWHERE name LIKE '%keyword%'
Group + havingSELECT dept, COUNT() FROM t GROUP BY dept HAVING COUNT() > 5

Joins

TypeMeaning
INNER JOINRows matching both sides
LEFT JOINAll left rows + matches
RIGHT JOINAll right rows + matches
FULL OUTER JOINAll rows (not in every DB)

DML

ActionSQL
InsertINSERT INTO t (a, b) VALUES (1, 'x')
UpdateUPDATE t SET b = 'y' WHERE id = 1
DeleteDELETE FROM t WHERE id = 1 (no WHERE = empty table)

Transactions & Indexes

ActionSQL
TransactionBEGIN; ...; COMMIT; or ROLLBACK;
IndexCREATE INDEX idx_name ON t (col)
ExplainEXPLAIN SELECT ...

Sources

最后更新:2026-08-02