Apakah ada standar SQL untuk mengonversi nama kolom? Jika tidak, apa yang berfungsi untuk MySQL dan SQLite? apakah itu juga berfungsi untuk SQL Server?
Jawaban:
"The SQL: 1999 standar menspesifikasikan bahwa kutipan ganda ( ") ( KUTIPAN MARK ) digunakan untuk membatasi pengidentifikasi.
<delimited identifier> ::= <double quote> <delimited identifier body> <double quote>
Oracle, PostgreSQL, MySQL, MSSQL dan SQlite semuanya mendukung "sebagai pemisah pengenal.
Mereka tidak semuanya digunakan "sebagai 'default'. Misalnya, Anda harus menjalankan MySQL di modus ANSI dan SQL Server hanya mendukung saat QUOTED_IDENTIFIERini ON.
Menurut SQLite ,
'foo' adalah string SQL"foo" adalah pengenal SQL (kolom / tabel / dll)[foo] adalah pengenal di MS SQL`foo` adalah pengenal di MySQLUntuk nama yang memenuhi syarat, sintaksnya adalah: "t"."foo"atau [t].[foo], dll.
MySQL mendukung "foo" standar jika ANSI_QUOTESopsi ini diaktifkan.
WHERE "nonexistent_column" = 0dan sqlite dengan senang hati mengeksekusinya dengan berpura-pura bahwa saya "nonexistent_column"adalah string. Nama sepenuhnya memenuhi syarat sebagai "my_table"."nonexistent_column"memaksa sqlite berperilaku lebih ketat.
foo, "foo"dan 'foo'tidak berhasil untuk saya dengan MySQL. Itu membutuhkan pukulan balik. Dan untuk memperburuk keadaan, MySQL memberikan pesan kesalahan yang tidak berguna .
Untuk MySQL, gunakan tanda centang '.
Misalnya:
SELECT `column`, `column2` FROM `table`
Untuk penggunaan MS SQL [dan]
SELECT [COLUMN], [COLUMN 2] FROM [TABLE]
Untuk penggunaan DBASE / DBF [dan]
SELECT [DATE], [TIME], [ANY_OTHER_TO_BE_ESCAPED_COLUMN] FROM [TABLE]
Menyatukan beberapa jawaban:
MS SQL (alias T-SQL), Microsoft Access SQL, DBASE / DBF: SELECT [COLUMN], [COLUMN2] FROM [TABLE]
MySQL: SELECT `COLUMN`, `COLUMN2` FROM `TABLE`
SQLite, Oracle, Postgresql: SELECT "COLUMN", "COLUMN2" FROM "TABLE"
Silakan tambahkan / edit!
'foo'untuk ditafsirkan sebagai pengenal jika konteks tidak mengizinkan string, dan"foo"untuk ditafsirkan sebagai string jika konteks tidak mengizinkan pengenal, meskipun ada catatan bahwa perilaku ini dapat dihapus di masa mendatang versi.