Ad esempio, il nome della tabella delle quote mysql viene utilizzato
SELECT * FROM `table_name`;
nota il `
L’altro database usa mai caratteri diversi per citare il nome della tabella
Questo uso di virgolette è chiamato identificatori delimitati. È una parte importante di SQL perché altrimenti non è ansible utilizzare identificativi (ad esempio nomi di tabelle e nomi di colonne) che:
Il linguaggio SQL standard utilizza virgolette doppie per gli identificatori delimitati:
SELECT * FROM "my table";
MySQL utilizza le virgolette per impostazione predefinita. MySQL può usare doppie virgolette standard:
SELECT * FROM `my table`; SET GLOBAL SQL_MODE=ANSI_QUOTES; SELECT * FROM "my table";
Microsoft SQL Server utilizza le parentesi per impostazione predefinita. Microsoft può utilizzare doppie virgolette standard:
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 usa correttamente le virgolette doppie.
SQL Server utilizza [parentesi quadre] o “virgolette doppie” quando l’opzione QUOTED_IDENTIFIER è ON.
Credo che le doppie virgolette siano nello standard SQL-92.
In breve, sì.
Lo standard SQL utilizza virgolette doppie attorno al nome per indicare un “identificatore delimitato”.
Informix utilizza per impostazione predefinita le virgolette singole e doppie in modo intercambiabile per indicare le stringhe di caratteri. Tuttavia, impostando la variabile di ambiente DELIMIDENT è ansible triggersre il comportamento standard SQL: virgolette singole attorno a stringhe e virgolette su identificatori delimitati.
Altre persone hanno elencato altri comportamenti per altri DBMS; Non ho bisogno di ripetere quelli.