Freigeben über


Namen

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt verschiedenartige Objekte in Azure Databricks an.

Die folgenden Einschränkungen gelten für alle Objektnamen in Unity Catalog:

  • Objektnamen dürfen nicht mehr als 255 Zeichen enthalten.
  • Die folgenden Sonderzeichen sind nicht zulässig:
    • Punkt (.)
    • Leerzeichen ( )
    • Schrägstrich (/)
    • Alle ASCII-Steuerelementzeichen (00-1F hex)
    • Das DELETE-Zeichen (7F hex)
  • In Unity Catalog werden alle Objektnamen in Kleinbuchstaben gespeichert.
  • Wenn Sie in SQL auf UC-Namen verweisen, müssen Sie Akut-Zeichen als Escapezeichen für Namen verwenden, die Sonderzeichen wie Bindestriche (-) enthalten.

Hinweis

Spaltennamen können Sonderzeichen enthalten. Namen mit Sonderzeichen müssen jedoch in allen SQL-Anweisungen mit Akut-Zeichen als Escapezeichen versehen werden. Unity Catalog behält die Groß- und Kleinschreibung von Spaltennamen bei, bei Abfragen für Unity Catalog-Tabellen wird die Groß-/Kleinschreibung jedoch nicht beachtet.

Verbindungsname

Identifiziert eine Fremdverbindung. Eine Fremdverbindung dient als Link zu einem fremden System (z. B. PostgreSQL) und kann dann verwendet werden, um auf seine Kataloge, Schemas und Tabellen zu verweisen.

Syntax

connection_identifier

Parameter

Beispiele

> CREATE CONNECTION my_postgresql ...;

Katalogname

Gibt einen Katalog an. Ein Katalog stellt eine Gruppierung von Objekten bereit, die weiter in Schemas unterteilt werden können.

Syntax

catalog_identifier

Parameter

Beispiele

> USE CATALOG hive_metastore;

> CREATE CATALOG mycatalog;

-- Creating a catalog with a special character requires back ticks
> CREATE CATALOG `cat-a-log`;

-- Creating a catalog with non ASCII characters requires back ticks
> USE `目录`;

-- space (' '), '/', and '.' are not allowed in catalog names, even with back ticks.
> CREATE CATALOG `cat a log`;
ERROR

Schemaname

Gibt ein Schema an. Ein Schema stellt eine Gruppierung von Objekten in einem Katalog bereit.

Syntax

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parameter

In hive_metastore erstellte Schemas dürfen nur alphanumerische ASCII-Zeichen und Unterstriche enthalten (INVALID_SCHEMA_OR_RELATION_NAME).

Beispiele

> USE SCHEMA default;

> CREATE SCHEMA my_sc;

-- In Hive Metastore, schema names must only consist of ASCII letters, digits and '_'
> CREATE SCHEMA hive_metastore.`a-b`;
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- In Unity Catalog only space (' '), '/', and '.' are not allowed
> CREATE SCHEMA main.`a-b`;

> CREATE SCHEMA `a b`;
Error

-- Use back-ticks to reference or create schemas in Unity Catalog with non-ASCII characters
> CREATE SCHEMA `数据库架构`;

Datenbankname

Ein Synonym für Schemaname.

Auch wenn die Verwendung von SCHEMA und DATABASE austauschbar ist, sollte vorzugsweise SCHEMA verwendet werden.

Tabellenname

Gibt ein Tabellenobjekt an. Die Tabelle kann mit einem Schemanamen qualifiziert oder mit einem einfachen Bezeichner ohne Qualifizierung angegeben werden.

Syntax

{ [ schema_name . ] table_identifier [ temporal_spec ] |
  IDENTIFIER clause [ temporal_spec ] |
  { file_format | `file_format` } . `path_to_table` [ temporal_spec ] [ credential_spec ] }

temporal_spec
{
  @ timestamp_encoding |
  @V version |
  [ FOR ] { SYSTEM_TIMESTAMP | TIMESTAMP } AS OF timestamp_expression |
  [ FOR ] { SYSTEM_VERSION | VERSION } AS OF version
}

credential_spec
  WITH ( CREDENTIAL credential_name )

Parameter

  • schema_name: Ein qualifizierter oder unqualifizierter Schemaname, der die Tabelle enthält.

  • table_identifier: Ein Bezeichner, der den Namen der Tabelle oder den table_alias angibt.

  • file_format: Eines der folgenden Formate: json, csv, avro, parquet, orc, binaryFile, text, delta (keine Beachtung von Groß-/Kleinschreibung).

  • path_to_table: Der Speicherort der Tabelle im Dateisystem. Sie müssen über die ANY_FILE-Berechtigung verfügen, um diese Syntax verwenden zu können.

  • IDENTIFIER-Klausel: Eine Zuordnung einer Konstante STRING zu einem Tabellennamen.

  • temporal_spec: Wenn auf eine Delta-Tabelle zum angegebenen Zeitpunkt oder mit der angegebenen Version verwiesen wird.

    Sie können eine temporale Spezifikation nur im Kontext einer Abfrage oder einer MERGE USING-Klausel verwenden.

    • @ timestamp_encoding: Ein positives Bigint-Literal, das einen Zeitstempel im Format yyyyMMddHHmmssSSS formatiert.
    • @V version: Ein positives Integer-Literal, das die Version der Delta-Tabelle angibt.
    • timestamp_expression: Ein einfacher Ausdruck, der in einen ZEITSTEMPEL ausgewertet wird. timestamp_expressiom muss ein konstanter Ausdruck sein, kann aber current_date() oder current_timestamp() enthalten.
    • version: Eine ganze Zahl literal oder String literal, der die Version der Delta-Tabelle identifiziert.
  • credential_spec

    Sie können zutreffende Anmeldeinformationen verwenden, um Zugriff auf einen path_to_table-Pfad zu erhalten, der nicht in einem externen Speicherort eingebettet ist.

    • credential_name

      Der Name der Anmeldeinformationen, die für den Zugriff auf den Speicherort verwendet werden.

In hive_metastore erstellte Tabellen dürfen nur alphanumerische ASCII-Zeichen und Unterstriche enthalten (INVALID_SCHEMA_OR_RELATION_NAME).

Wenn der Name ohne Qualifizierung angegeben wird und nicht auf einen bekannten Tabellenalias verweist, versucht Azure Databricks zunächst, die Tabelle im aktuellen Schema aufzulösen.

Wenn der Name mit einem Schema qualifiziert ist, versucht Azure Databricks, die Tabelle im aktuellen Katalog aufzulösen.

Weitere Informationen zur Namensauflösung finden Sie unter Tabellen- und Ansichtsauflösung.

Azure Databricks löst einen Fehler aus, wenn Sie temporal_spec für eine Tabelle verwenden, die nicht im Delta Lake-Format vorliegt.

Beispiele

-- A back quoted table name
> SELECT * FROM `Employees`;

-- A table name without back quotes
> SELECT * FROM employees;

-- A schema qualified table name
> SELECT * FROM hr.employees;

-- A schema qualified table name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified table name
> SELECT * FROM hive_metastore.default.tab;

-- A reference to an information schema table.
> SELECT * FROM system.information_schema.columns;

-- Referencing a path as a table requires back ticks
> SELECT * FROM delta.`somedir/delta_table`;

> SELECT * FROM `csv`.`spreadsheets/data.csv`;

> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH (CREDENTIAL some_credential)

-- Tables in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE TABLE hive_metastore.default.t1(c1 INT);

> CREATE TABLE hive_metastore.default.`表一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE TABLE main.`瑞赛奇`.`表一`(c1 INT);

Name der Ansicht

Gibt eine Sicht an. Die Sicht kann mit einem Schemanamen qualifiziert oder mit einem einfachen Bezeichner ohne Qualifizierung angegeben werden.

Syntax

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: Der qualifizierte oder unqualifizierte Name des Schemas, das die Ansicht enthält.
  • view_identifier: Ein Bezeichner, der den Namen der Ansicht oder den Bezeichner der Ansicht eines CTE angibt.
  • IDENTIFIER-Klausel: Eine Zuordnung einer Konstante STRING zu einem Ansichtnamen.

In hive_metastore erstellte Sichten dürfen nur alphanumerische ASCII-Zeichen und Unterstriche enthalten (INVALID_SCHEMA_OR_RELATION_NAME).

Beispiele

-- A back quoted view name
> SELECT * FROM `Employees`;

-- A view name without back quotes
> SELECT * FROM employees;

-- A schema qualified view name
> SELECT * FROM hr.employees;

-- A schema qualified view name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified view name
> SELECT * FROM hive_metastore.default.tab;

-- Views in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE VIEW hive_metastore.default.v1(c1) AS SELECT 1;

> CREATE VIEW hive_metastore.default.`数据库视图一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE VIEW main.`瑞赛奇`.`数据库视图一`(c1) AS SELECT 1;

Spaltenname

Gibt eine Spalte in einer Tabelle oder Sicht an. Die Spalte kann mit einem Tabellen- oder Sichtnamen qualifiziert oder mit einem einfachen Bezeichner ohne Qualifizierung angegeben werden.

Syntax

{ [ { table_name | view_name } . ] column_identifier |
  IDENTIFIER clause }

Parameter

  • table_name: Ein qualifizierter oder unqualifizierter Tabellenname der Tabelle, welche die Spalte enthält.
  • view_name: Ein qualifizierter oder unqualifizierter Sichtname der Ansicht, welche die Spalte enthält.
  • column_identifier: Ein Bezeichner, welcher den Namen der Spalte angibt.
  • IDENTIFIER-Klausel: Eine Zuordnung einer Konstante STRING zu einem Spaltennamen.

Die angegebene Spalte muss in der Tabelle oder Sicht vorhanden sein.

Azure Databricks unterstützt eine spezielle _metadata-Spalte. Diese Pseudospalte vom Typ „struct“ ist Teil jeder Tabelle und kann verwendet werden, um Metadateninformationen über die Zeilen der Tabelle abzurufen.

Warnung

Wenn das Tabellenschema eine Spalte mit dem Namen _metadata enthält, geben Abfragen die Spalte aus der Datenquelle zurück, und nicht die Dateimetadaten. Auf die _metadata-Pseudospalte kann nicht zugegriffen werden.

Spaltennamen in Delta Lake-Tabellen ohne Spaltenzuordnungseigenschaft ('delta.columnMapping.mode' = 'name') dürfen nicht die Zeichen ' ' (Leerzeichen), ',', ';', '{', '}', '(' oder ')' enthalten. '\n', '\t'und '='.

Spaltennamen in AVRO-Tabellen müssen mit '_' oder einem Unicode-Buchstaben (einschließlich Nicht-ASCII-Buchstaben) beginnen, auf den eine Kombination aus '_', Unicode-Buchstaben und Ziffern folgt.

Beispiele

-- An unqualified column name
> SELECT c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- A qualified column name
> SELECT T.c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- Using _metadata to retrieve information about rows retrieved from T.
> CREATE TABLE T(c1 INT);
> INSERT INTO T VALUES(1);
> SELECT T._metadata.file_size;
  574

-- A delimited column name
> CREATE TABLE T(`sütun1`);

Feldname

Gibt ein Feld innerhalb einer Struktur an. Das Feld muss mit dem Pfad zu der Struktur, die das Feld enthält, qualifiziert werden.

Syntax

{ expr { . field_identifier [. ...] } |
  IDENTIFIER clause }

Parameter

Auf ein tief geschachteltes Feld kann verwiesen werden, indem der Feldbezeichner mit dem Pfad zur Stammstruktur angegeben wird.

Feldnamen in Delta Lake-Tabellen ohne Spaltenzuordnungseigenschaft ('delta.columnMapping.mode' = 'name') dürfen nicht die Zeichen ' ' (Leerzeichen), ',', ';', '{', '}', '(' oder ')' enthalten. '\n', '\t'und '='.

Feldnamen in AVRO-Tabellen müssen mit '_' oder einem Unicode-Buchstaben (einschließlich Nicht-ASCII-Buchstaben) beginnen, auf den eine Kombination aus '_', Unicode-Buchstaben und Ziffern folgt.

Beispiele

> SELECT addr.address.name
    FROM VALUES (named_struct('address', named_struct('number', 5, 'name', 'Main St'),
                              'city', 'Springfield')) as t(addr);
  Main St

-- Delimited field names with non ASCII letters
> CREATE TABLE T(c1 struct<`атрибут1` INT, `атрибут2`>);
> SELECT c1.`атрибут1` FROM T;

Variablenname

Identifiziert eine temporäre (Sitzungs-)Variable. Die Variable kann qualifiziert werden mit einem Schemanamen (system.session oder session) oder nicht qualifiziert werden mit einem einfachen Bezeichner.

Syntax

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: system.session oder session, welche alle temporären Variablen enthält.
  • variable_identifier: Ein Bezeichner, der den Namen der Variablen angibt.

Beispiele


-- Declaring a session variable with a qualified name.
> DECLARE session.myvar = 5;

-- Setting a session variable with an unqualified name.
> SET VAR myvar = 6

-- Declaring a session variable with a fully qualified name an non-ASCII characters.
> DECLARE system.session.`圆周率` = 3.14;

Funktionsname

Gibt eine Funktion an. Die Funktion kann mit einem Schemanamen qualifiziert oder mit einem einfachen Bezeichner ohne Qualifizierung angegeben werden.

Syntax

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: Ein qualifizierter oder unqualifizierter Schemaname, der die Funktion enthält.
  • function_identifier: Ein Bezeichner, welcher den Namen der Funktion angibt.
  • IDENTIFIER-Klausel: Eine Zuordnung einer Konstante STRING zu einem Funktionsnamen.

In hive_metastore erstellte Funktionen dürfen nur alphanumerische ASCII-Zeichen und Unterstriche enthalten.

Beispiele

-- Creating a SQL function with a qualified name
> CREATE FUNCTION math.myplus(x INT, y INT) RETURN x + y;

-- Invoking a function with an unqualified name
> SELECT myplus()

-- Creating a SQL function with non-ASCII characters;
> CREATE FUNCTION `圆周率`() RETURN 3.14;

Parametername

Gibt einen Parameter im Befehlstext einer benutzerdefinierten SQL-Funktion (SQL UDF) an. Die Funktion kann mit einem Funktionsbezeichner qualifiziert oder mit einem einfachen Bezeichner ohne Qualifizierung angegeben werden.

Syntax

[ function_identifier . ] parameter_identifier

Parameter

Beispiele

-- Create a function with undelimited parameters and reference them as qualified and nonqualified.
> CREATE FUNCTION area(x INT, y INT) RETURNS INT
  RETURN area.x + y;

-- Create a function with non-ASCII character parameters
> CREATE FUNCTION full_name(`prénom` STRING, `nom` STRING) RETURNS STRING
  RETURN `prénom` + ' ' + `nom`;

Tabellenalias

Bezeichnet einen Tabellenverweis, eine Abfrage, eine Tabellenfunktion oder eine andere Form einer Beziehung.

Syntax

[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]

Parameter

Wenn Sie Spaltenbezeichner angeben, muss deren Anzahl mit der Anzahl der Spalten in der zugehörigen Beziehung übereinstimmen.

Wenn Sie keine Spaltenbezeichner angeben, werden deren Namen von der bezeichneten Beziehung übernommen.

Beispiele

-- Defining a table alias with column list
> SELECT a, b FROM VALUES (1, 2) AS t(a, b);
 a  b
 1  2

-- Defining a table alias without column list
> DELETE FROM emp AS e WHERE e.c1 = 5;

-- Defining a table alias with non ASCII characters
> SELECT * FROM employee AS `직원`;

Spaltenalias

Bezeichnet das Ergebnis eines Ausdrucks in einer SELECT-Liste als Verweis.

Wenn der Ausdruck eine Tabellenwertgenerator-Funktion ist, bezeichnet der Alias die Liste der erzeugten Spalten.

Syntax

[AS] column_identifier
[AS] ( column_identifier [, ...] )

Parameter

Spaltenaliase müssen in der SELECT-Liste zwar nicht eindeutig sein, Eindeutigkeit ist aber eine Voraussetzung, um über den Namen auf einen Alias zu verweisen.

Beispiele

-- An undelimited alias
> SELECT 1 AS a;
 a
 1

> SELECT 1 a, 2 b;
 a b
 1 2

-- A delimited alias with non-ASCII characters
> SELECT 3.14 AS `圆周率`;
 a
 1

-- Referencing a passed column alias
> SELECT a + a FROM (SELECT 1 AS a);
 a
 2

Name der Anmeldeinformationen

Gibt Anmeldeinformationen für den Zugriff auf den Speicher an einem externen Speicherort an.

Syntax

credential_identifier

Parameter

  • credential_identifier: Ein unqualifizierter Bezeichner, welcher die Anmeldeinformationen eindeutig identifiziert.

Beispiele

Name des Standorts

Gibt einen externen Speicherort an.

Syntax

location_identifier

Parameter

  • location_identifier: Ein unqualifizierter Bezeichner, welcher den Speicherort eindeutig identifiziert.

Beispiele

`s3-json-data`

s3_json_data

Freigabename

Gibt eine Freigabe für den Zugriff auf Daten an, die von einem Anbieter freigegeben wurden.

Syntax

share_identifier

Parameter

  • share_identifier: Ein unqualifizierter Bezeichner, welcher die Freigabe eindeutig kennzeichnet.

Beispiele

`public info`

`public-info`

public_info

Anbietername

Identifiziert einen Delta Sharing-Anbieter.

Syntax

provider_identifier

Parameter

  • provider_identifier

    Ein nicht qualifizierter Bezeichner, der den Anbieter eindeutig identifiziert.

Beispiele

`Good Corp`

`Good-corp`

Good_Corp

Empfängername

Gibt einen Empfänger für eine Freigabe an.

Syntax

recipient_identifier

Parameter

  • recipient_identifier: Ein unqualifizierter Bezeichner, welcher den Empfänger eindeutig identifiziert.

Beispiele

`Good Corp`

`Good-corp`

Good_Corp

Volumename

Identifiziert ein Unity Catalog-Volume. Das Volume kann mit einem Schemanamen qualifiziert oder mit einem einfachen Bezeichner ohne Qualifizierung angegeben werden.

Syntax

[ schema_name .] volume_identifier

Parameter

  • schema_name: Ein qualifizierter oder unqualifizierter Schemaname, der die Tabelle enthält.
  • volume_identifier: Ein unqualifizierter Bezeichner, welcher das Volume im Schema eindeutig kennzeichnet.

Beispiele

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume