Namn
Gäller för: Databricks SQL Databricks Runtime
Identifierar olika typer av objekt i Azure Databricks.
Följande begränsningar gäller för alla objektnamn i Unity Catalog:
- Objektnamn får inte överstiga 255 tecken.
- Följande specialtecken tillåts inte:
- Period (
.
) - Blanksteg (
- Snedstreck (
/
) - Alla ASCII-kontrolltecken (00–1F hex)
- Tecknet DELETE (7F hex)
- Period (
- Unity Catalog lagrar alla objektnamn som små bokstäver.
- När du refererar till UC-namn i SQL måste du använda backticks för att undkomma namn som innehåller specialtecken som bindestreck (
-
).
Kommentar
Column-namn kan använda specialtecken, men namnet måste omges med backticks i alla SQL-uttryck om det används specialtecken. Unity Catalog bevarar column namnhölje, men frågor mot Unity Catalogtables är skiftlägeskänsliga.
Anslutningens namn
Identifierar en extern anslutning.
En extern anslutning fungerar som en länk till ett främmande system, till exempel PostgreSQL
och kan sedan användas för att referera till dess catalogs, scheman och tables.
Syntax
connection_identifier
Parameters
- connection_identifier: En identifier som unikt identifierar anslutningen.
Exempel
> CREATE CONNECTION my_postgresql ...;
Catalog namn
Identifierar en catalog. En catalog innehåller en gruppering av objekt som kan delas in ytterligare i scheman.
Syntax
catalog_identifier
Parameters
- catalog_identifier: En identifier som unikt identifierar catalog.
Exempel
> 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
Schema namn
Identifierar en schema. En schema innehåller en gruppering av objekt i en catalog.
Syntax
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parameters
- catalog_name: Namnet på en befintlig catalog.
- schema_identifier: En identifier som unikt identifierar schema.
-
IDENTIFIER-sats: En mappning av konstant
STRING
till ett schema namn.
Scheman som skapas i hive_metastore
får bara innehålla alfanumeriska ASCII-tecken och understreck (INVALID_SCHEMA_OR_RELATION_NAME).
Exempel
> 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 `数据库架构`;
Databasnamn
En synonym för namnet schema.
Även om användning av SCHEMA
, och DATABASE
är utbytbar, SCHEMA
föredras.
Table namn
Identifierar ett table objekt. table kan kvalificeras med ett schema namn eller okvalificeras med en enkel identifier.
Syntax
{ [ schema_name . ] table_identifier |
IDENTIFIER clause |
{ file_format | `file_format` } . `path_to_table` } [ temporal_spec ] [ options_spec ] }
temporal_spec
{
@ timestamp_encoding |
@V version |
[ FOR ] { SYSTEM_TIMESTAMP | TIMESTAMP } AS OF timestamp_expression |
[ FOR ] { SYSTEM_VERSION | VERSION } AS OF version
}
options_spec
WITH ( { option_key [ = ] option_val } [, ...] )
option_key
{ identifier [. ...] | string_literal }
Parameters
schema_name: Ett kvalificerat eller okvalificerat schema namn som innehåller table.
table_identifier: En identifier som anger namnet på table eller tabellalias.
file_format: En av
json
,csv
,avro
,parquet
,orc
,binaryFile
, ,text
(delta
skiftlägesokänslig).path_to_table: Platsen för table i filsystemet. Du måste ha
ANY_FILE
behörighet att använda den här syntaxen.IDENTIFIER-sats: En mappning av konstant
STRING
till ett table-namn.temporal_spec: När används refererar till en Delta-table vid den angivna tidpunkten eller versionen.
Du kan endast använda en temporal specifikation i kontexten för en fråga eller en MERGE USING.
-
@ timestamp_encoding: En positiv Bigint-literal som kodar en tidsstämpel i
yyyyMMddHHmmssSSS
format. - @V version: Ett positivt heltal som identifierar versionen av Delta table.
-
timestamp_expression: Ett enkelt uttryck som utvärderas till en TIDSSTÄMPEL.
timestamp_expressiom
måste vara ett konstant uttryck, men kan innehållacurrent_date()
ellercurrent_timestamp()
. - version: Ett heltal eller en sträng som identifierar versionen av Delta table.
-
@ timestamp_encoding: En positiv Bigint-literal som kodar en tidsstämpel i
option_spec: När det används definieras direktiv som ska skickas till en datakälla, till exempel en autentiseringsuppgift för att få åtkomst till en lagringsplats eller
'write.split-size'
för att kontrolleraINSERT
beteendet.option_key
Alternativnyckeln. Nyckeln kan bestå av en eller flera identifierare avgränsade med en punkt eller en strängliteral .
Alternativnycklar måste vara unika och skiftlägeskänsliga.
option_val
Värdet för alternativet. Ett konstant uttryck av typen
BOOLEAN
,STRING
,INTEGER
ellerDECIMAL
.
Tables som skapas i hive_metastore
får bara innehålla alfanumeriska ASCII-tecken och understreck (INVALID_SCHEMA_OR_RELATION_NAME).
Om namnet är okvalificerat och inte refererar till ett känt table aliasförsöker Azure Databricks först lösa table i den aktuella schema.
Om namnet är kvalificerat med en schema, kommer Azure Databricks att försöka lösa table i den aktuella catalog.
Mer information om namnmatchning finns i Table och visa lösning.
Azure Databricks genererar ett fel om du använder en temporal_spec
för en table som inte är i Delta Lake-format.
Exempel
-- 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)
> INSERT INTO t WITH ('write.split-size' 10) SELECT * FROM s;
-- 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);
Vynamn
Identifierar en vy. Vyn kan kvalificerade med ett schema namn eller okvalificerade med hjälp av en enkel identifier.
Syntax
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parameters
- schema_name: Det kvalificerade eller okvalificerade namnet på schema som innehåller vyn.
- view_identifier: En identifier som specificerar namnet på vyn eller vyens identifier för en CTE.
-
IDENTIFIER-sats: En mappning av konstant
STRING
till ett visningsnamn.
Views som skapas i hive_metastore
får bara innehålla alfanumeriska ASCII-tecken och understreck (INVALID_SCHEMA_OR_RELATION_NAME).
Exempel
-- 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;
Column namn
Identifierar en column i en table eller vy. column kan kvalificerade med ett table- eller visningsnamn eller okvalificerade med hjälp av en enkel identifier.
Syntax
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Parameters
- table_name: Ett kvalificerat eller okvalificerat table-namn på table som innehåller column.
- view_name: Ett kvalificerat eller okvalificerat vynamn för vyn som innehåller column.
- column_identifier: En identifier som anger namnet på column.
-
IDENTIFIER-sats: En mappning av konstant
STRING
till ett column namn.
Den identifierade column måste finnas inom table eller vy.
Azure Databricks stöder en särskild _metadata column. Den här pseudo-column av typen struct ingår i varje table och kan användas för att hämta metadatainformation om raderna i table.
Varning
Om tableschema innehåller en column med namnet _metadata
returnerar frågor column från datakällan och inte filmetadata.
_metadata
psuedo-column kommer inte att vara tillgänglig.
Column namn i Delta Lake tables utan column mappningsegenskap ('delta.columnMapping.mode' = 'name'
) får inte innehålla tecknen ' '
(blanksteg), ','
, ';'
, '{'
, '}'
, '('
, ')'
.
'\n'
, '\t'
och '='
.
Column namn i AVRO
tables måste börja med '_'
eller en Unicode-bokstav (inklusive icke-ASCII-bokstäver) och följas av en kombination av '_'
, Unicode-bokstäver och siffror.
Exempel
-- 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`);
Fältnamn
Identifierar ett fält i en struct. Fältet måste vara kvalificerat med sökvägen upp till den struct som innehåller fältet.
Syntax
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parameters
- expr: Ett uttryck av typen STRUCT.
- field_identifier: En identifier som anger namnet på fältet.
-
IDENTIFIER sats: En mappning av konstant
STRING
till ett fältnamn.
Du kan referera till ett djupt kapslat fält genom att ange fältet identifier längs sökvägen till rot-structen.
Fältnamn i Delta Lake tables utan column mappningsegenskap ('delta.columnMapping.mode' = 'name'
) får inte innehålla tecknen ' '
(blanksteg), ','
, ';'
, '{'
, '}'
, '('
, ')'
.
'\n'
, '\t'
och '='
.
Fältnamn i AVRO
tables måste börja med '_'
eller en Unicode-bokstav (inklusive icke-ASCII-bokstäver) och följas av en kombination av '_'
, Unicode-bokstäver och siffror.
Exempel
> 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;
Variabelnamn
Identifierar en tillfällig variabel (session).
Variabeln kan vara kvalificerad med ett schema namn (system.session
eller session
), eller okvalificerad med en enkel identifier.
Syntax
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parameters
-
schema_name:
system.session
ellersession
som innehåller alla temporära variabler. - variable_identifier: En identifier som anger namnet på variabeln.
Exempel
-- 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;
Funktionsnamn
Identifierar en funktion. Funktionen kan vara kvalificerad med ett schema namn, eller okvalificerad med hjälp av en enkel identifier.
Syntax
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parameters
- schema_name: Ett kvalificerat eller okvalificerat schema namn som innehåller funktionen.
- function_identifier: En identifier som anger namnet på funktionen.
-
IDENTIFIER-sats: En mappning av konstant
STRING
till ett funktionsnamn.
Funktioner som skapas i hive_metastore
kan bara innehålla alfanumeriska ASCII-tecken och understreck.
Exempel
-- 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;
Parameternamn
Identifierar en parameter i brödtexten för en SQL-användardefinierad funktion (SQL UDF). Funktionen kan kvalificeras med en funktion identifiereller okvalificeras med en enkel identifier.
Syntax
[ function_identifier . ] parameter_identifier
Parameters
- function_identifier: En identifier som anger namnet på en funktion.
- parameter_identifier: En identifier som anger namnet på en parameter.
Exempel
-- 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`;
Table alias
Etiketterar en table referens, fråga, table funktion eller någon annan form av en relation.
Syntax
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parameters
- table_identifier: En identifier som anger namnet på table.
- column_identifierN: En valfri identifier som anger namnet på column.
Om du anger column identifierare måste deras nummer matcha antalet columns i den matchade relationen.
Om du inte anger column identifierare ärvs deras namn från den märkta relationen.
Exempel
-- 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 `직원`;
Column alias
Etiketter resultatet av ett uttryck i en SELECT
list som referens.
Om uttrycket är en table värderad generatorfunktion, etiketterar aliaset de producerade list av columns.
Syntax
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parameters
- column_identifier: En identifier som anger namnet på column.
Även om column alias inte behöver vara unika inom selectlist, är unikhet ett krav för att referera till ett alias efter namn.
Exempel
-- 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
Sorteringsnamn
Identifierar en sortering för en column eller ett uttryck.
Syntax
collation_identifier
Parameters
- collation_identifier: En identifier som anger namnet på sorteringen.
För en list av sorteringar som stöds, se sorteringar som stöds. Mer information om sortering finns i Sortering.
Exempel
> SELECT 'hello' COLLATE UNICODE_CI;
hello
Namn på autentiseringsuppgifter
Identifierar en autentiseringsuppgift för åtkomst till lagring på en extern plats eller molntjänster med provider-SDK:er.
Syntax
credential_identifier
Parameters
- credential_identifier: En okvalificerad identifier som unikt identifierar autentiseringsuppgifterna.
Exempel
`my_storage_cred`
my_storage_cred
Platsnamn
Identifierar en extern lagringsplats.
Syntax
location_identifier
Parameters
- location_identifier: En okvalificerad identifier som unikt identifierar platsen.
Exempel
`s3-json-data`
s3_json_data
Resursnamn
Identifierar en resurs för åtkomst till data som delas av en provider.
Syntax
share_identifier
Parameters
- share_identifier: En okvalificerad identifier som unikt identifierar andelen.
Exempel
`public info`
`public-info`
public_info
Providernamn
Identifierar en deltadelningsprovider.
Syntax
provider_identifier
Parameters
-
En okvalificerad identifier som unikt identifierar leverantören.
Exempel
`Good Corp`
`Good-corp`
Good_Corp
Mottagarens namn
Identifierar en mottagare för en resurs.
Syntax
recipient_identifier
Parameters
- recipient_identifier: En okvalificerad identifier som unikt identifierar mottagaren.
Exempel
`Good Corp`
`Good-corp`
Good_Corp
Namn på rent rum
Identifierar ett rent rum för en set av medarbetare.
Syntax
clean_room_identifier
Parameters
- clean_room_identifier: En okvalificerad identifier som unikt anger det rena rummet i metastores för medarbetare.
Exempel
`Clean-Room`
Clean_Room
Volymnamn
Identifierar en UnityCatalog-volym. Volymen kan vara kvalificerad med ett schema namn eller okvalificerad med en enkel identifier.
Syntax
[ schema_name .] volume_identifier
Parameters
- schema_name: Ett kvalificerat eller okvalificerat schema namn som innehåller volymen.
- volume_identifier: En okvalificerad identifier som unikt identifierar volymen i schema.
Exempel
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume