Namen
Gilt für: Databricks SQL 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)
- Punkt (
- 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
- connection_identifier: Ein Bezeichner, der die Verbindung eindeutig kennzeichnet.
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
- catalog_identifier: Ein Bezeichner, der den Katalog eindeutig kennzeichnet.
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
- catalog_name: Der Name eines vorhandenen Katalogs.
- catalog_identifier: Ein Bezeichner, der das Schema eindeutig kennzeichnet.
- IDENTIFIER-Klausel: Eine Zuordnung einer Konstante
STRING
zu einem Schemanamen.
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 abercurrent_date()
odercurrent_timestamp()
enthalten. - version: Eine ganze Zahl literal oder String literal, der die Version der Delta-Tabelle identifiziert.
- @ timestamp_encoding: Ein positives Bigint-Literal, das einen Zeitstempel im Format
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.-
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
- expr: Ein Ausdruck vom Typ STRUCT.
- field_identifier: Ein Bezeichner, welcher den Namen des Felds angibt.
- IDENTIFIER-Klausel: Eine Zuordnung einer Konstante
STRING
zu einem Feldnamen.
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
odersession
, 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
- function_identifier: Ein Bezeichner, welcher den Namen einer Funktion angibt.
- parameter_identifier: Ein Bezeichner, welcher den Namen eines Parameters angibt.
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
- table_identifier: Ein Bezeichner, welcher den Namen der Tabelle angibt.
- column_identifierN: Ein optionaler Bezeichner, welcher den Namen der Spalte angibt.
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
- column_identifier: Ein Bezeichner, welcher den Namen der Spalte angibt.
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
-
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