Menavigasi Aksara Khas dalam Nama Lajur SQL
Pangkalan data SQL menawarkan fleksibiliti yang besar dalam menamakan jadual dan lajur. Walau bagaimanapun, aksara tertentu dikhaskan untuk fungsi SQL tertentu. Sebagai contoh, noktah (.) bertindak sebagai pemisah antara nama jadual dan lajur. Memasukkan noktah secara langsung dalam nama lajur akan membawa kepada salah tafsir oleh pangkalan data.
Penyelesaian adalah dengan menggunakan pembatas, dengan berkesan melarikan diri daripada watak istimewa. Melampirkan nama lajur dalam tanda petikan memberitahu pangkalan data bahawa tempoh itu adalah sebahagian daripada nama, bukan pemisah. Contoh berikut mencipta jadual dengan lajur bernama "first.name":
<code class="language-sql">CREATE TABLE people ( "first.name" VARCHAR(255) );</code>
Penggunaan Standard dan Pembatas SQL
Piawaian SQL:1999 mengesyorkan tanda petikan berganda ("") untuk mengehadkan pengecam. Ini membenarkan melarikan diri daripada mana-mana aksara yang biasanya tidak dibenarkan dalam pengecam yang tidak disebut. Contohnya:
<code class="language-sql">CREATE TABLE "table name" ( column_name VARCHAR(255) );</code>
Pertimbangan Khusus Pangkalan Data
Walaupun standard SQL wujud, tingkah laku lalai berbeza-beza merentas sistem pangkalan data. MySQL dan SQLite menyokong petikan berganda sebagai pembatas, tetapi bukan secara lalai. MySQL memerlukan mod ANSI, manakala SQLite memerlukan PRAGMA identifiers=ON
untuk mendayakan tingkah laku ini.
SQL Server juga menerima petikan berganda, tetapi begitu juga, memerlukan menetapkan pilihan QUOTED_IDENTIFIER
kepada ON
.
Ringkasan
Walaupun standard wujud untuk melepaskan nama lajur dalam SQL, sistem pangkalan data selalunya mempunyai tetapan lalai yang berbeza. MySQL, SQLite dan SQL Server semuanya menyokong petikan berganda sebagai pembatas, tetapi memerlukan konfigurasi khusus untuk mengaktifkan fungsi ini. Sentiasa rujuk dokumentasi pangkalan data anda untuk kaedah yang betul.
Atas ialah kandungan terperinci Bagaimana Saya Melarikan Diri Watak Khas dalam Nama Lajur SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!