外鍵建立表間引用關係,維護參考完整性。
類型 語法 行為 級聯更新 ON UPDATE CASCADE主表主鍵變更 → 從表外鍵自動同步 級聯刪除 ON DELETE CASCADE主表記錄刪除 → 從表關聯記錄自動刪除 設為 NULL ON DELETE SET NULL主表刪除 → 從表外鍵置 NULL(需外鍵列允許 NULL) 限制/無動作 ON DELETE RESTRICT / NO ACTION存在關聯記錄時禁止刪除主表(預設) SELECT s.sid, c.cid FROM student s, class c; -- 或 SELECT s.sid, c.cid FROM student s CROSS JOIN class c;結果行數 = 學生數 × 班級數。通常非預期,避免使用。
2. 內連接
僅返回滿足連接條件的雙方記錄。
SELECT s.sname, c.cid FROM student s LEFT OUTER JOIN class c ON s.classid = c.cid;4. 右外連接
保留右表所有記錄,左表無匹配則 NULL 填充。
-- 員工與上司關係 SELECT e.ename AS employee, m.ename AS manager FROM employee e LEFT JOIN employee m ON e.boss_id = m.eid;多表查詢三步法
- 確定涉及哪些表
- 確定需要輸出哪些欄位
- 確定表間關係(連接條件),N 張表至少 N-1 個條件
效能提示
INNER JOIN,優化器可自由調整連接順序