Dela via


Namn

Gäller för:markerad ja Databricks SQL markerad ja 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)
  • 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

Kolumnnamn kan använda specialtecken, men namnet måste tas bort med backticks i alla SQL-instruktioner om specialtecken används. Unity Catalog bevarar kolumnnamnshöljet, men frågor mot Unity Catalog-tabeller ä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 kataloger, scheman och tabeller.

Syntax

connection_identifier

Parametrar

Exempel

> CREATE CONNECTION my_postgresql ...;

Katalognamn

Identifierar en katalog. En katalog innehåller en gruppering av objekt som kan delas upp ytterligare i scheman.

Syntax

catalog_identifier

Parametrar

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

Schemanamn

Identifierar ett schema. Ett schema innehåller en gruppering av objekt i en katalog.

Syntax

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parametrar

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 schemanamn.

Även om användning av SCHEMA, och DATABASE är utbytbar, SCHEMA föredras.

Tabellnamn

Identifierar ett tabellobjekt. Tabellen kan vara kvalificerad med ett schemanamn eller okvalificerad med en enkel identifierare.

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 }

Parametrar

  • schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller tabellen.

  • table_identifier: En identifierare som anger namnet på tabellen eller table_alias.

  • file_format: En av json, csv, avro, parquet, orc, binaryFile, , text( delta skiftlägesokänslig).

  • path_to_table: Platsen för tabellen 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 tabellnamn.

  • temporal_spec: När den används refererar till en Delta-tabell 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: En positiv heltalsliteral som identifierar versionen av Delta-tabellen.
    • timestamp_expression: Ett enkelt uttryck som utvärderas till en TIDSSTÄMPEL. timestamp_expressiom måste vara ett konstant uttryck, men kan innehålla current_date() eller current_timestamp().
    • version: Ett heltal eller en sträng som identifierar versionen av Deltatabellen.
  • 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 kontrollera INSERT beteendet.

Tabeller som skapats 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 tabellalias, försöker Azure Databricks först lösa tabellen i det aktuella schemat.

Om namnet är kvalificerat med ett schema försöker Azure Databricks lösa tabellen i den nuvarande katalogen.

Mer information om namnupplösning finns i Tabell och se upplösning.

Azure Databricks genererar ett fel om du använder en temporal_spec för en tabell 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 schemanamn eller okvalificerade med hjälp av en enkel identifierare.

Syntax

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parametrar

  • schema_name: Det kvalificerade eller okvalificerade namnet på schemat som innehåller vyn.
  • view_identifier: En identifierare som anger namnet på vyn eller vyidentifieraren för en CTE-.
  • IDENTIFIER-sats: En mappning av konstant STRING till ett visningsnamn.

Vyer 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;

Relationsnamn

Identifierar en vy eller tabell. Relationen kan kvalificeras med ett schemanamn eller okvalificeras genom att använda en enkel identifierare.

Syntax

{ table_name | view_name }

Exempel

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

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

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

Kolumnnamn

Identifierar en kolumn i en relation. Kolumnen kan kvalificerade med ett relationsnamn eller okvalificerade med hjälp av en enkel identifierare.

Syntax

{ [ relation_name . ] column_identifier |
  IDENTIFIER clause }

Parametrar

  • table_name: Ett kvalificerat eller okvalificerat tabellnamn för tabellen som innehåller kolumnen.
  • view_name: Ett kvalificerat eller okvalificerat vynamn för vyn som innehåller kolumnen.
  • column_identifier: En identifierare som anger namnet på kolumnen.
  • IDENTIFIER-sats: En mappning av konstant STRING till ett kolumnnamn.

Den identifierade kolumnen måste finnas i relationen.

Azure Databricks stöder en särskild _metadata kolumn. Den här pseudokolumnen av typen struct är en del av varje tabell och kan användas för att hämta metadatainformation om raderna i tabellen.

Varning

Om tabellschemat innehåller en kolumn med namnet _metadatareturnerar frågor kolumnen från datakällan och inte filmetadata. _metadata-pseudokolumnen kommer inte att vara tillgänglig.

Kolumnnamn i Delta Lake-tabeller utan kolumnmappningsegenskap ('delta.columnMapping.mode' = 'name') får inte innehålla tecknen ' ' (blanksteg), ',', ';', '{', '}', '(', ')'. '\n', '\t'och '='.

Kolumnnamn i AVRO tabeller 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 }

Parametrar

Du kan referera till ett djupt kapslat fält genom att ange fältidentifieraren längs sökvägen till rot-structen.

Fältnamn i Delta Lake-tabeller utan kolumnmappningsegenskap ('delta.columnMapping.mode' = 'name') får inte innehålla tecknen ' ' (blanksteg), ',', ';', '{', '}', '(', ')'. '\n', '\t'och '='.

Fältnamn i AVRO tabeller 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 kvalificeras med ett schemanamn (system.session eller session), eller okvalificeras med hjälp av en enkel identifierare.

Syntax

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parametrar

  • schema_name: system.session eller session som innehåller alla temporära variabler.
  • variable_identifier: En identifierare 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 kvalificeras med ett schemanamn eller okvalificeras med hjälp av en enkel identifierare.

Syntax

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parametrar

  • schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller funktionen.
  • function_identifier: En identifierare 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 vara kvalificerad med en funktionsidentifierare eller okvalificerad med en enkel identifierare.

Syntax

[ function_identifier . ] parameter_identifier

Parametrar

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`;

Tabellalias

Etiketterar en tabellreferens, fråga, tabellfunktion eller annan form av en relation.

Syntax

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

Parametrar

Om du anger kolumnidentifierare måste deras nummer matcha antalet kolumner i den matchade relationen.

Om du inte anger kolumnidentifierare ä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 `직원`;

Kolumnalias

Etiketterar resultatet av ett -uttryck i en SELECT-lista för referens.

Om uttrycket är en tabellvärdegeneratorfunktion, är det aliaset som anger etiketterna för listan över kolumner som produceras.

Syntax

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

Parametrar

Kolumnalias behöver inte vara unika i urvalslistan, men unikhet är 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 kolumn eller ett uttryck.

Syntax

collation_identifier

Parametrar

För en lista över kollationeringar som stöds, se kollationer 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

Parametrar

  • credential_identifier: En okvalificerad identifierare som unikt identifierar autentiseringsuppgifterna.

Exempel

`my_storage_cred`

my_storage_cred

Platsnamn

Identifierar en extern lagringsplats.

Syntax

location_identifier

Parametrar

Exempel

`s3-json-data`

s3_json_data

Resursnamn

Identifierar en resurs för åtkomst till data som delas av en provider.

Syntax

share_identifier

Parametrar

  • share_identifier: En okvalificerad identifierare som unikt identifierar aktiedelen.

Exempel

`public info`

`public-info`

public_info

Providernamn

Identifierar en deltadelningsprovider.

Syntax

provider_identifier

Parametrar

Exempel

`Good Corp`

`Good-corp`

Good_Corp

Mottagarens namn

Identifierar en mottagare för en resurs.

Syntax

recipient_identifier

Parametrar

Exempel

`Good Corp`

`Good-corp`

Good_Corp

Namn på rent rum

Identifierar ett rent rum för en uppsättning medarbetare.

Syntax

clean_room_identifier

Parametrar

  • clean_room_identifier: En okvalificerad identifierare som unikt anger det rena rummet i samarbetspartnernas metabibliotek.

Exempel

`Clean-Room`

Clean_Room

Volymnamn

Identifierar en Unity Catalog-volym. Volymen kan vara kvalificerad med ett schemanamn eller okvalificerad genom att använda en enkel identifierare.

Syntax

[ schema_name .] volume_identifier

Parametrar

  • schema_name: Ett kvalificerat eller okvalificerat schemanamn som innehåller volymen.
  • volume_identifier: En okvalificerad identifierare som unikt identifierar volymen i schemat.

Exempel

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume