首頁 > 資料庫 > mysql教程 > 如何轉義 SQL 列名中的特殊字元?

如何轉義 SQL 列名中的特殊字元?

Susan Sarandon
發布: 2025-01-11 22:18:44
原創
674 人瀏覽過

How Do I Escape Special Characters in SQL Column Names?

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板