SQL (Structured Query Language) 歷經半個世紀演進,從 IBM System R 原型成為關聯式資料庫的通用標準語言。理解其歷史脈絡、標準化里程碑、四大子語言架構,有助於跨平台技術遷移與標準相容性設計。
| 年份 | 事件 | 影響 |
|---|---|---|
| 1974 | Boyce & Chamberlin 提出 SEQUEL (SQL 前身) | 奠基關聯代數與關聯演算結合的查詢語言概念 |
| 1975-1979 | IBM San Jose 研發 System R 實現 SQL | 首個關聯式資料庫原型系統,驗證 SQL 可行性 |
| 1986 | ANSI X3.135 / ISO 9075 首版標準 (SQL-86) | 確立 SQL 為國際標準,廠商開始相容實作 |
| 1989 | SQL-89 (FIPS 127-1) | 修正錯誤、增加完整性條件約束、外鍵支援 |
| 1992 | SQL-92 (SQL2) - 重大擴展 | JOIN 語法標準化、日期時間型別、資訊結構描述、權限細粒度 |
| 1999 | SQL:1999 (SQL3) | 觸發器、遞迴查詢、物件導向特性、SQL/OLB、SQL/JRT |
| 2003 | SQL:2003 | XML 整合 (SQL/XML)、窗格函數、序列、MERGE |
| 2008 | SQL:2008 | TRUNCATE TABLE 分區、INSTEAD OF 觸發器標準化 |
| 2011 | SQL:2011 | 時間資料表 (System-Versioned)、管道函數 |
| 2016 | SQL:2016 | JSON、多維陣列、Row Pattern Recognition |
| 子語言 | 英文全稱 | 核心指令 | 功能定位 | 典型角色 |
|---|---|---|---|---|
| 資料定義語言 | DDL | CREATE, ALTER, DROP, TRUNCATE, RENAME | 定義/修改/移除資料庫物件結構 | DBA, 資料架構師 |
| 資料操縱語言 | DML | SELECT, INSERT, UPDATE, DELETE, MERGE, LOCK | 查詢與修改資料內容 | 開發人員, 分析師 |
| 資料控制語言 | DCL | GRANT, REVOKE, DENY | 管理存取權限與安全性 | 安全管理員, DBA |
| 其他語言要素 | — | COMMIT, ROLLBACK, SAVEPOINT, SET, CALL, EXPLAIN | 交易控制、會話設定、程序呼叫、計畫解析 | 開發人員, DBA |


TOP vs LIMIT/FETCH FIRST) 封裝於資料存取層。SQL 的標準化歷程,是關聯理論與工程實踐不斷磨合的歷程。掌握標準核心,善用平台特長,才能在多雲、異構、微服務架構中游刃有餘。