Navigieren durch Sonderzeichen in SQL-Spaltennamen
SQL-Datenbanken bieten erhebliche Flexibilität bei der Benennung von Tabellen und Spalten. Bestimmte Zeichen sind jedoch für bestimmte SQL-Funktionen reserviert. Beispielsweise fungiert der Punkt (.) als Trennzeichen zwischen Tabellen- und Spaltennamen. Das Einfügen eines Punkts direkt in einen Spaltennamen führt zu einer Fehlinterpretation durch die Datenbank.
Die Lösung besteht darin, Trennzeichen zu verwenden, um das Sonderzeichen effektiv zu maskieren. Wenn Sie den Spaltennamen in Anführungszeichen setzen, wird die Datenbank darüber informiert, dass der Punkt Teil des Namens und kein Trennzeichen ist. Das folgende Beispiel erstellt eine Tabelle mit einer Spalte namens „vorname“:
<code class="language-sql">CREATE TABLE people ( "first.name" VARCHAR(255) );</code>
SQL-Standard- und Trennzeichenverwendung
Der SQL:1999-Standard empfiehlt doppelte Anführungszeichen (""), um Bezeichner abzugrenzen. Dadurch ist es möglich, jedes Zeichen zu maskieren, das in Bezeichnern ohne Anführungszeichen normalerweise nicht zulässig ist. Zum Beispiel:
<code class="language-sql">CREATE TABLE "table name" ( column_name VARCHAR(255) );</code>
Datenbankspezifische Überlegungen
Obwohl der SQL-Standard existiert, variiert das Standardverhalten je nach Datenbanksystem. MySQL und SQLite unterstützen doppelte Anführungszeichen als Trennzeichen, jedoch nicht standardmäßig. MySQL erfordert den ANSI-Modus, während SQLite PRAGMA identifiers=ON
benötigt, um dieses Verhalten zu aktivieren.
SQL Server akzeptiert auch doppelte Anführungszeichen, erfordert jedoch ebenfalls die Einstellung der Option QUOTED_IDENTIFIER
auf ON
.
Zusammenfassung
Obwohl es einen Standard für das Escapen von Spaltennamen in SQL gibt, haben Datenbanksysteme oft unterschiedliche Standardeinstellungen. MySQL, SQLite und SQL Server unterstützen alle doppelte Anführungszeichen als Trennzeichen, erfordern jedoch bestimmte Konfigurationen, um diese Funktionalität zu aktivieren. Informationen zur richtigen Methode finden Sie immer in der Dokumentation Ihrer Datenbank.
Das obige ist der detaillierte Inhalt vonWie entferne ich Sonderzeichen in SQL-Spaltennamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!