Mysql
 sql >> Database >  >> RDS >> Mysql

Database diversi utilizzano virgolette di nome diverse?

Questo uso delle virgolette è chiamato identificatori delimitati. È una parte importante di SQL perché altrimenti non è possibile utilizzare identificatori (ad es. nomi di tabelle e nomi di colonne) che:

  • Includi spazio bianco:"il mio tavolo"
  • Includi caratteri speciali e punteggiatura:"my-table"
  • Includi caratteri internazionali:"私のテーブル"
  • Fanno distinzione tra maiuscole e minuscole:"MyTable"
  • Fai corrispondere le parole chiave SQL:"tabella"

Il linguaggio SQL standard utilizza le virgolette per gli identificatori delimitati:

SELECT * FROM "my table";

MySQL utilizza le virgolette per impostazione predefinita. MySQL può utilizzare le virgolette doppie standard:

SELECT * FROM `my table`;
SET SQL_MODE=ANSI_QUOTES;
SELECT * FROM "my table";

Microsoft SQL Server e Sybase utilizzano parentesi per impostazione predefinita. Entrambi possono utilizzare le doppie virgolette standard in questo modo:

SELECT * FROM [my table];
SET QUOTED_IDENTIFIER ON;
SELECT * FROM "my table";

InterBase e Firebird devono impostare il dialetto SQL su 3 per supportare identificatori delimitati.

La maggior parte delle altre marche di database utilizza correttamente le virgolette doppie.