Escape-Spaltennamen in der SQL-Datenbank
Verfügt SQL über eine standardisierte Möglichkeit, Spaltennamen zu maskieren? Wenn nicht, welche Methoden werden von MySQL, SQLite und SQL Server unterstützt?
SQL-Standards und Bezeichnertrennzeichen
Der SQL:1999-Standard besagt, dass Bezeichner, einschließlich Spaltennamen, als Trennzeichen in doppelte Anführungszeichen (") eingeschlossen werden müssen.
<code><delimited identifier=""> ::= <double quote=""><delimited body="" identifier=""><double quote=""></double></delimited></double></delimited></code>
Unterstützung für durch Trennzeichen getrennte Spaltennamen
Die meisten gängigen SQL-Datenbanken, einschließlich Oracle, PostgreSQL, MySQL, MSSQL und SQLite, unterstützen die Verwendung von doppelten Anführungszeichen als Bezeichnertrennzeichen. Allerdings verwenden nicht alle Datenbanken dies als Standardeinstellung.
MySQL
Um in MySQL doppelte Anführungszeichen als Trennzeichen für Spaltennamen zu verwenden, muss der ANSI-Modus aktiviert sein.
SQL Server
In SQL Server werden doppelte Anführungszeichen als Trennzeichen für Spaltennamen nur unterstützt, wenn die Option QUOTED_IDENTIFIER auf ON gesetzt ist.
Beispielverwendung
Um doppelte Anführungszeichen zu verwenden, um Spaltennamen in diesen Datenbanken zu maskieren, schließen Sie den Spaltennamen einfach in Anführungszeichen ein.
<code>SELECT * FROM "table_name" WHERE "column_name" = 'value';</code>
Hinweis:
Obwohl doppelte Anführungszeichen die Standardmethode sind, um Spaltennamen zu maskieren, unterstützen einige Datenbanken möglicherweise auch andere Trennzeichen, wie z. B. eckige Klammern ([ und ]). Es wird jedoch generell empfohlen, doppelte Anführungszeichen zu verwenden, um die Kompatibilität und Konsistenz zwischen verschiedenen Datenbanken sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie entkomme ich Spaltennamen in MySQL, SQLite und SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!