結構化查詢語言 (SQL) (Structured Query Language (SQL))
典型的 DBMS 可讓使用者以有條理且有效率的方式儲存、存取及修改資料。 DBMS 的原始使用者是程式設計人員。 若要存取儲存的資料,需以 COBOL 等程式設計語言來撰寫程式。 儘管撰寫程式通常是為了向非技術性使用者呈現其可輕易使用的介面,但存取資料本身需由具專業知識的程式設計人員來服務。 隨意存取資料其實並不實際。
使用者對這種情況不甚滿意。 儘管他們可以存取資料,但通常需要 DBMS 程式設計人員撰寫特殊軟體。 例如,如果銷售部門要查看每位銷售人員上個月的總銷售額,並想依每位銷售人員在公司的服務時間來排序此資訊,有兩種選項:第一個選項是程式已存在,可完全依所需方式存取資訊;第二是部門必須要求程式設計人員撰寫這類程式。 在許多情況,這所涵蓋的工作不符其價值,而且就一次性或特定查詢而言,這絕對是昂貴的解決方案。 隨著更多使用者想要輕鬆存取,問題也變得日益嚴重。
若要讓使用者能以特定方式存取資料,需要向其提供語言以便表達要求。 對資料庫進行單一要求的行為是定義為查詢;這類語言稱為查詢語言。 許多查詢語言都是為此目的而開發,但 1970 年代由 IBM 發明的「結構化查詢語言」(SQL) 是其中最受歡迎的語言:。 其縮寫 SQL 更廣為人知,發音為「ess-cue-ell」或「sequel」。 SQL 在 1986 年成為 ANSI 標準,並在 1987 年成為 ISO 標準,目前許多資料庫管理系統都採用這個語言。
儘管 SQL 解決了使用者的特定需求,但對電腦程式的資料存取需求並未消失。 事實上,不論過去或現在,多數資料庫存取仍透過程式設計方式進行,形式為定期排程報表與統計分析、資料輸入程式 (例如用於輸入訂單的程式),以及資料操作程式 (例如用於協調帳戶及產生工作訂單的程式)。
這些程式也會從下列三種技術中選擇一項,來使用 SQL:
內嵌 SQL:SQL 陳述式內嵌在 C 或 COBOL 等主機語言。
SQL 模組:SQL 陳述式會在 DBMS 編譯,並從主機語言呼叫。
呼叫層級介面 (或 CLI):由函式組成,可呼叫以便將 SQL 陳述式傳遞至 DBMS,以及從 DBMS 擷取結果。
注意
採用「呼叫層級介面」一詞,而非另一同義詞「應用程式開發介面」(API),純屬歷史偶然。 在資料庫世界,API 用來描述 SQL 本身:SQL 則是 DBMS 的 API。
這些選項中,最常使用的是內嵌 SQL,不過多數主要 DBMS 都支援專屬 CLI。
此章節包含下列主題。