SQL 標準指定大量的關鍵字,不得用作表格、索引、欄位、資料庫、使用者定義函數、校對、虛擬表格模組或任何其他命名物件的名稱。關鍵字清單很長,鮮少有人能全部記住。對於大多數 SQL 程式碼而言,最安全的做法是從不使用任何英文單字作為使用者定義物件的名稱。
如果您想使用關鍵字作為名稱,您需要加上引號。SQLite 中有四種加上引號的方法
'關鍵字' 單引號中的關鍵字是字串文字。 "關鍵字" 雙引號中的關鍵字是識別碼。 [關鍵字] 方括號中的關鍵字是識別碼。這不是標準 SQL。此引號機制由 MS Access 和 SQL Server 使用,並包含在 SQLite 中以確保相容性。 `關鍵字` 反引號(ASCII 碼 96)中的關鍵字是識別碼。這不是標準 SQL。此引號機制由 MySQL 使用,並包含在 SQLite 中以確保相容性。
為了應對歷史 SQL 陳述,SQLite 有時會調整上述引號規則
如果單引號中的關鍵字(例如:'key' 或 'glob')用於允許識別碼但不允許字串文字的內容中,則會將此標記理解為識別碼,而不是字串文字。
如果雙引號中的關鍵字(例如:"key" 或 "glob")用於無法解析為識別碼但允許字串文字的內容中,則此標記會理解為字串文字,而非識別碼。
警告程式設計人員不要使用前述項目符號中所述的兩個例外。我們強調,它們的存在僅為了讓舊的和格式不正確的 SQL 陳述正確執行。未來的 SQLite 版本可能會產生錯誤,而不是接受上述例外所涵蓋的格式不正確的陳述。
SQLite 會在採用新功能時不時新增新的關鍵字。因此,為了防止您的程式碼因未來的增強功能而中斷,您通常應該引用任何英文單字的識別碼,即使您不必這麼做。
以下清單顯示 SQLite 的任何組建所使用的所有可能的關鍵字,不論編譯時間選項為何。大多數合理的組態都使用這些關鍵字的大部分或全部,但在停用 SQL 語言功能時,可能會略過一些關鍵字。應用程式可以使用 sqlite3_keyword_count()、sqlite3_keyword_name() 和 sqlite3_keyword_check() 介面來判斷 SQLite 在執行時識別的關鍵字。不論編譯時間組態為何,任何不在以下 147 個元素清單中的識別碼都不是 SQLite 中 SQL 剖析器的關鍵字
此頁面最後修改於 2022-11-26 14:56:19 UTC