內嵌 SQL

傳送 SQL 陳述式至 DBMS 的第一個方法是內嵌 SQL。 SQL 不使用變數和控制流程陳述式,所以常作為資料庫子語言,新增至 C 或 COBOL 等以慣用程式設計語言撰寫的程式。 以下是內嵌 SQL 的核心概念:在以主機程式設計語言撰寫的程式中放入 SQL 陳述式。 簡單來說,下列方法可在主機語言中內嵌 SQL 陳述式:

  • 內嵌 SQL 陳述式由特殊的 SQL 前置編譯器處理。 所有 SQL 陳述式都以引入字元開頭,以結束字元結尾,這兩者會旗標前置編譯器的 SQL 陳述式。 引入字元和結束字元皆因主機語言而有所不同。 例如,引入字元在 C 中是 "EXEC SQL"、在 MUMPS 中是 "&SQL(",而結束字元在 C 中是分號 (;)、在 MUMPS 中是右括弧。

  • 允許常數時,應用程式變數 (稱為主機變數) 可用於內嵌 SQL 陳述式。 這些變數可用於針對特定情況撰寫 SQL 陳述式的輸入,及接收查詢結果的輸出。

  • 傳回單一資料列的查詢會使用單一 SELECT 陳述式處理;此陳述式會同時指定要傳回資料的查詢和主機變數。

  • 傳回多個資料列的查詢會使用資料指標處理。 資料指標會追蹤結果集中目前的資料列。 DECLARE CURSOR 陳述式會定義查詢、OPEN 陳述式開始查詢處理、FETCH 陳述式擷取連續資料列,及 CLOSE 陳述式結束查詢處理。

  • 開啟資料指標後,定點更新和定點刪除陳述式可用來更新或刪除資料指標目前選取的資料列。

此章節包含下列主題。