Namen und Kennungen - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Namen und Kennungen

Namen bezeichnen Datenbankobjekte, u. a. Tabellen und Spalten sowie Benutzer und Passwörter. Die Begriffe Name und Kennung können synonym verwendet werden. Es gibt zwei Arten von Kennungen, Standard-Kennungen und abgegrenzte Kennungen in Anführungszeichen. Kennungen dürfen nur aus druckbaren UTF-8-Zeichen bestehen. Bei ASCII-Zeichen in Standard-Kennungen und abgegrenzten Kennungen wird in der Datenbank nicht zwischen Groß- und Kleinschreibung unterschieden; Großbuchstaben werden wie Kleinbuchstaben behandelt. In Abfrageergebnissen werden Spaltennamen standardmäßig in Kleinbuchstaben zurückgegeben. Um Spaltennamen in Großbuchstaben zurückzugeben, legen Sie den describe_field_name_in_uppercase-Konfigurationsparameter auf true fest.

Standard-Kennungen

Standard-Kennungen in SQL sind einer Reihe von Regeln unterworfen und müssen:

  • Mit einem alphabetischen ASCII-Zeichen mit einer Länge von einem Byte oder einem Unterstrich beginnen, oder mit einem UTF-8-Zeichen mit einer Länge von zwei bis vier Bytes

  • Die nachfolgenden Zeichen können alphanumerische ASCII-Zeichen mit einer Länge von einem Byte, Unterstriche oder Dollar-Zeichen sein, oder UTF-8-Zeichen mit einer Länge von zwei bis vier Bytes

  • Zwischen 1 und 127 Byte lang sein, ohne die Anführungszeichen für abgegrenzte Kennungen.

  • Dürfen keine Anführungszeichen oder Leerzeichen enthalten

  • Dürfen nicht ein SQL-Schlüsselwort sein

Abgegrenzte Kennungen

Abgegrenzte Kennungen (bzw. Kennungen in Anführungszeichen) beginnen und enden mit einem doppelten Anführungszeichen ("). Wenn Sie eine abgegrenzte Kennungen verwenden, müssen Sie die doppelten Anführungszeichen bei jeder Referenz auf das Objekt verwenden. Die Kennung kann alle druckbaren UTF-8-Standardzeichen enthalten, mit Ausnahme der Anführungszeichen. D. h. Sie können Spalten- oder Tabellennamen erstellen, die Zeichen enthalten, die sonst nicht zulässig wären, z. B. Leerzeichen oder das Prozentsymbol.

Bei ASCII-Zeichen in abgegrenzten Kennungen wird nicht zwischen Groß- und Kleinschreibung unterschieden; Großbuchstaben werden wie Kleinbuchstaben behandelt. Sie können ein doppeltes Anführungszeichen in einer Zeichenfolge verwenden, indem Sie ein weiteres Anführungszeichen voranstellen.

Bezeichner mit Groß-/Kleinschreibung

Bezeichner mit Groß- und Kleinschreibung (auch als Bezeichner mit gemischter Groß-/Kleinschreibung bekannt) können sowohl Groß- als auch Kleinbuchstaben enthalten. Um Bezeichner mit Groß-/Kleinschreibung zu verwenden, können Sie die Konfiguration enable_case_sensitive_identifier auf true festlegen. Sie können diese Konfiguration für den Cluster oder für eine Sitzung festlegen. Weitere Informationen finden Sie unter Standardparameterwerte im Amazon-Redshift-Verwaltungshandbuch und unter enable_case_sensitive_identifier.

Systemspaltennamen

Die folgenden Namen von PostgreSQL-Systemspalten können nicht als Namen für benutzerdefinierte Spalten verwendet werden. Weitere Informationen finden Sie unter https://www.postgresql.org/docs/8.0/static/ddl-system-columns.html.

  • oid

  • tableoid

  • xmin

  • cmin

  • xmax

  • cmax

  • ctid

Beispiele

Die folgende Tabelle enthält ein paar Beispiele für abgegrenzte Kennungen, die jeweils resultierende Ausgabe und eine Erklärung:

Syntax Ergebnis Erklärung
"Gruppe" Gruppe GROUP ist ein reserviertes Wort, d. h. es kann in einer Kennung nur mit doppelten Anführungszeichen verwendet werden.
"""WHERE""" "where" WHERE ist ebenfalls ein reserviertes Wort. Sie können Anführungszeichen in der Zeichenfolge verwenden, indem Sie jedem doppelte Anführungszeichen ein zusätzliches doppeltes Anführungszeichen als Escape-Zeichen voranstellen.
"This name" this name Falls Leerzeichen erhalten bleiben sollen, müssen doppelte Anführungszeichen verwendet werden.
"This ""IS IT""" this "is it" Den Anführungszeichen um IS IT muss jeweils ein eigenes Anführungszeichen vorangestellt werden, sodass sie als Bestandteil des Namens interpretiert werden.

So erstellen Sie eine Tabelle mit dem Namen „group” und mit einer Spalte mit dem Namen „this "is it"”:

create table "group" ( "This ""IS IT""" char(10));

Die folgenden Abfragen geben dasselbe Ergebnis zurück:

select "This ""IS IT""" from "group"; this "is it" -------------- (0 rows)
select "this ""is it""" from "group"; this "is it" -------------- (0 rows)

Die folgende vollständig qualifizierte table.column-Syntax gibt ebenfalls dasselbe Ergebnis zurück:

select "group"."this ""is it""" from "group"; this "is it" -------------- (0 rows)

Der folgende Befehl CREATE TABLE erstellt eine Tabelle mit einem Schrägstrich in einem Spaltennamen:

create table if not exists city_slash_id( "city/id" integer not null, state char(2) not null);