在 SQL 欄位名稱中導覽特殊字元
SQL 資料庫在命名表和列方面提供了相當大的靈活性。 但是,某些字元是為特定 SQL 函數保留的。 例如,句點 (.) 充當表名和列名之間的分隔符號。 直接在列名中包含句點會導致資料庫誤解。
解決方案是使用分隔符,有效轉義特殊字元。 將列名稱括在引號內可告知資料庫句點是名稱的一部分,而不是分隔符號。 以下範例建立一個表,其中包含名為「first.name」的欄位:
<code class="language-sql">CREATE TABLE people ( "first.name" VARCHAR(255) );</code>
SQL 標準與分隔符號用法
SQL:1999 標準建議使用雙引號 ("") 來分隔識別碼。這允許轉義不帶引號的標識符中通常不允許的任何字元。 例如:
<code class="language-sql">CREATE TABLE "table name" ( column_name VARCHAR(255) );</code>
特定於資料庫的注意事項
雖然 SQL 標準存在,但預設行為因資料庫系統而異。 MySQL 和 SQLite 支援雙引號作為分隔符,但預設不支援。 MySQL 需要 ANSI 模式,而 SQLite 需要 PRAGMA identifiers=ON
才能啟用此行為。
SQL Server 也接受雙引號,但同樣,需要將 QUOTED_IDENTIFIER
選項設為 ON
。
總結
儘管存在 SQL 中轉義列名稱的標準,但資料庫系統通常具有不同的預設設定。 MySQL、SQLite 和 SQL Server 都支援雙引號作為分隔符,但需要特定配置才能啟動此功能。 請務必查閱資料庫文件以了解正確的方法。
以上是如何轉義 SQL 列名中的特殊字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!