17.1 SQL 語言:關聯式資料庫的通用語言
17.1.1 發展脈絡
- 1970 年代:Codd 提出關聯模型 → IBM System R 專案研發 SEQUEL2(1976 發表)。
- 1979:Oracle 首推商用 SQL。
- 1986:ANSI X3.135 標準化 → ISO 9075 國際標準。
- 1989:ANSI SQL-89 修訂版,奠基現代 SQL 核心規格。
今日主流 RDBMS(Oracle、SQL Server、PostgreSQL、MySQL 等)均以 SQL-89/92 為基線並擴展專屬方言。
17.1.2 三大核心優勢
- 非程序化(宣告式): 使用者描述「要什麼」,而非「怎麼做」。查詢優化器自動選擇最佳存取路徑(索引、連接順序等),屏蔽底層儲存細節。
- 統一語言: DQL(查詢)、DML(操作)、DDL(定義)、DCL(控制)、TCL(事務)五大功能集於一身,跨角色(DBA、開發、分析師)無縫協作。
- 可移植性: 標準 SQL 程式碼可在不同 RDBMS 間遷移,僅需微調方言差異,保護技術資產投資。
17.2 TQuery:Delphi SQL 程式設計的絕對核心
Delphi 透過 TQuery 元件實現 SQL 支援,其地位無可取代:
- SQL 陳述式經 TQuery 傳遞給資料庫引擎執行,而非 BDE 本地解析(本地 SQL 除外),充分發揮伺服器端運算能力。
- 支援三大資料源:Paradox/dBASE(本地 SQL 子集)、Local InterBase、遠端 SQL 伺服器(需對應 SQL Link)。
- 異構查詢: 單一查詢可跨越 Oracle、Sybase、InterBase 等多種資料庫伺服器,整合分散資料。
TQuery vs TTable:能力邊界
TTable 雖功能強大,但受限於導航式存取模型,無法勝任:
- 多表連接查詢(JOIN)
- 複雜巢狀子查詢
- 必須使用標準 SQL 語法的操作
TQuery 以 SQL 為槓桿,解鎖關聯式查詢全部威力,代價是程式複雜度提升——這正是專業開發者的必經之路。