首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

SQL 連接基礎筆記(一):ANSI 標準、笛卡爾積、內連接類型、多表連接順序、子查詢連接、自連接、不等連接

     編輯:MySQL 綜合教學

SQL 連接基礎筆記(一):ANSI 標準、笛卡爾積、內連接類型、多表連接順序、子查詢連接、自連接、不等連接

系統梳理 SQL-92 ANSI 連接語法核心知識體系,含舊語法對比、笛卡爾積成因、內連接五大變體、順序無關性驗證、派生表連接、自連接層級查詢、不等值連接生成對戰表。

1. ANSI SQL-92 標準語法優勢

  • 連接條件 (ON) 與過濾條件 (WHERE) 分離,語義清晰
  • 每對表連接條件獨立列出,易維護
  • 跨數據庫通用,舊語法行為差異大

2. 笛卡爾積 (CROSS JOIN)

SELECT e.fname, e.lname, d.name
FROM employee e JOIN department d;  -- 缺 ON 子句
-- 18 員工 × 3 部門 = 54 行

3. 內連接五大變體

  1. 兩表等值連接:ON e.dept_id = d.dept_id
  2. 多表內連接:3 表 2 個 ON,順序不影響結果
  3. 子查詢作派生表連接:將篩選邏輯下推到派生表
  4. 自連接:員工表關聯自身查主管,總經理因 NULL 丟失
  5. 不等連接:ON e.emp_id < emp.emp_id 生成象棋對戰表,避免重複與自我對戰

4. 多表連接順序無關性驗證

三表內連接調換 JOIN 順序、ON 子句位置,結果集完全一致(SQL 聲明式特性,優化器決定執行順序)。

5. 關鍵遺留問題

內連接順序無關,外連接順序敏感(下篇詳解)。

夯實連接基礎,是複雜查詢寫作與優化的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved