1. 程式人生 > >MySQL-靜態SQL 和動態SQL

MySQL-靜態SQL 和動態SQL

所謂SQL的動態和靜態,是指SQL語句在何時被編譯和執行,二者都是用在SQL嵌入式程式設計中的。

靜態 SQL:靜態 SQL 語句一般用於嵌入式 SQL 應用中,在程式執行前,SQL 語句必須是確定的,例如 SQL 語句中涉及的列名和表名必須是存在的。靜態 SQL 語句的編譯是在應用程式執行前進行的,編譯的結果會儲存在資料庫內部。而後程式執行時,資料庫將直接執行編譯好的 SQL 語句,降低執行時的開銷。

靜態sql在編譯的時候就已經生成好了執行計劃,所以執行效率會更高。

動態 SQL:動態 SQL 語句是在應用程式執行時被編譯和執行的,例如,使用 DB2 的互動式工具 CLP 訪問資料庫時,使用者輸入的 SQL 語句是不確定的,因此 SQL 語句只能被動態地編譯。動態 SQL 的應用較多,常見的 CLI 和 JDBC 應用程式都使用動態 SQL。