涵蓋 DDL/DML/DCL 分類、高階查詢運算符、五大子查詢類型、三種循環結構、視圖最佳實踐、多表關聯查詢深度解析,是從入門到進階的知識地圖。
| 運算符 | 行為 | 去重 |
|---|---|---|
| UNION | 合併結果集 | 預設去重 |
| UNION ALL | 合併結果集 | 保留重複 |
| EXCEPT | 差集(在表1不在表2) | 預設去重 |
| INTERSECT | 交集 | 預設去重 |
WHERE uid = (SELECT uid FROM user WHERE status=1 ORDER BY uid DESC LIMIT 1)WHERE uid IN (SELECT uid FROM user WHERE status=1)WHERE (1,2) = (SELECT col1,col2 FROM table)WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)SELECT * FROM (SELECT ... FROM t) AS derived# EXISTS:主查詢行放入子查詢驗證
SELECT * FROM article WHERE EXISTS (SELECT * FROM user WHERE article.uid=user.uid);
# 關聯子查詢:子查詢引用外部表
SELECT article.* FROM article INNER JOIN user ON article.uid=user.uid;
LEAVE label 實現靈活控制| 類型 | 語法關鍵字 | 結果集特徵 |
|---|---|---|
| 內連接 | INNER JOIN / JOIN | 僅返回匹配行 |
| 左外連接 | LEFT OUTER JOIN | 左表全量 + 右表匹配/NULL |
| 右外連接 | RIGHT OUTER JOIN | 右表全量 + 左表匹配/NULL |
| 全外連接 | FULL OUTER JOIN | 雙表全量 + 匹配/NULL |
核心原則:ON 子句放連接條件,WHERE 子句放業務過濾條件;多表 JOIN 時優先考慮小表驅動大表。