Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime
Identifikuje různé druhy objektů v Azure Databricks.
Pro všechny názvy objektů v katalogu Unity platí následující omezení:
- Názvy objektů nesmí překročit 255 znaků.
- Následující speciální znaky nejsou povoleny:
- Období (
.) - Mezera (
) - Lomítko (
/) - Všechny znaky ovládání ASCII (00–1F hexadecimálně)
- Znak DELETE (hexadecimální 7F)
- Období (
- Katalog Unity ukládá všechny názvy objektů malými písmeny.
- Při odkazování na názvy UC v SQL je nutné použít backticks k označení názvů, které obsahují speciální znaky, jako jsou spojovníky (
-).
Poznámka:
Názvy sloupců můžou používat speciální znaky, ale pokud se použijí speciální znaky, musí být název uchycený pomocí zpětných znamétek ve všech příkazech SQL. Katalog Unity zachovává velikost písmen názvů sloupců, ale dotazy na tabulky katalogu Unity nerozlišují malá a velká písmena.
Název připojení
Identifikuje cizí připojení.
Cizí připojení slouží jako spojení s cizím systémem, jako je například PostgreSQL, a poté může být použito k odkazování na jeho katalogy, schémata a tabulky.
Syntaxe
connection_identifier
Parametry
Příklady
> CREATE CONNECTION my_postgresql ...;
Název katalogu
Identifikuje katalog. Katalog poskytuje seskupení objektů, které lze dále rozdělit do schémat.
Syntaxe
catalog_identifier
Parametry
Příklady
> 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
Název schématu
Identifikuje schéma. Schéma poskytuje seskupení objektů v katalogu.
Syntaxe
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parametry
- catalog_name: Název existujícího katalogu.
- schema_identifier: Identifikátor, který jednoznačně identifikuje schéma.
-
IDENTIFIER klauzule: Mapování konstanty
STRINGna název schématu.
Schémata vytvořená v hive_metastore můžou obsahovat pouze alfanumerické znaky a podtržítka ASCII (INVALID_SCHEMA_OR_RELATION_NAME).
Příklady
> 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 `数据库架构`;
Název databáze
Synonymum pro název schématu.
Zatímco použití SCHEMAa DATABASE je zaměnitelné, SCHEMA je upřednostňované.
Název tabulky
Identifikuje objekt tabulky. Tabulku lze kvalifikovat názvem schématu nebo použít jednoduše neidentifikovanou pomocí jednoduchého identifikátoru.
Syntaxe
{ [ 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 }
Parametry
schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje tabulku.
table_identifier: Identifikátor, který určuje název tabulky nebo table_alias.
file_format: Jeden z
json,csv,avroparquetorcbinaryFile,textdelta(nerozlišuje velká a malá písmena).path_to_table: Umístění tabulky v systému souborů. K použití této syntaxe musíte mít
ANY_FILEoprávnění.IDENTIFIER klauzule: Mapování konstanty
STRINGna název tabulky.temporal_spec: Při použití odkazuje na tabulku Delta v zadaném bodu v čase nebo verzi.
Dočasnou specifikaci můžete použít pouze v kontextu dotazu nebo funkce MERGE USING.
-
@ timestamp_encoding: Pozitivní literál Bigint, který kóduje časové razítko ve
yyyyMMddHHmmssSSSformátu. - @V verze: Kladný celočíselný literál, který identifikuje verzi tabulky Delta.
-
timestamp_expression: Jednoduchý výraz, který se vyhodnotí jako TIMESTAMP.
timestamp_expressiommusí být konstantní výraz, ale může obsahovatcurrent_date()nebocurrent_timestamp(). - version: Celočíselná literála nebo řetězcový literál identifikující verzi tabulky Delta.
-
@ timestamp_encoding: Pozitivní literál Bigint, který kóduje časové razítko ve
option_spec: Při použití definuje direktivy, které se mají předat zdroji dat, jako jsou přihlašovací údaje pro přístup k umístění úložiště nebo
'write.split-size'k řízeníINSERTchování.option_key
Klávesa option. Klíč se může skládat z jednoho nebo více identifikátorů oddělených tečkou nebo řetězcovým literálem.
Klávesy možností musí být jedinečné a rozlišují malá a velká písmena.
option_val
Hodnota pro možnost. Konstantní výraz typu
BOOLEAN, ,STRINGINTEGERneboDECIMAL.
Tabulky vytvořené v hive_metastore mohou obsahovat pouze alfanumerické znaky a podtržítka (INVALID_SCHEMA_OR_RELATION_NAME).
Pokud je název nekvalifikovaný a neodkazuje na známý alias tabulky, Azure Databricks se nejprve pokusí vyřešit tabulku v aktuálním schématu.
Pokud je název kvalifikovaný pomocí schématu, Azure Databricks se pokusí vyřešit tabulku v aktuálním katalogu.
Další informace o rozlišení jmen najdete v části Tabulka a zobrazení rozlišení.
Azure Databricks vyvolá chybu, pokud použijete temporal_spec tabulku, která není ve formátu Delta Lake.
Příklady
-- 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);
Název zobrazení
Identifikuje zobrazení. Zobrazení může být kvalifikované s názvem schématu nebo nekvalifikovaným pomocí jednoduchého identifikátoru.
Syntaxe
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parametry
- schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje zobrazení.
- view_identifier: Identifikátor, který určuje název zobrazení nebo identifikátor zobrazení CTE.
-
IDENTIFIER klauzule: Mapování konstanty
STRINGna název zobrazení.
Zobrazení vytvořená v hive_metastore můžou obsahovat pouze alfanumerické ASCII znaky a podtržítka (INVALID_SCHEMA_OR_RELATION_NAME).
Příklady
-- 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;
Název relace
Identifikuje zobrazení nebo tabulku. Relace může být kvalifikovaná s názvem schématu nebo nekvalifikovaná pomocí jednoduchého identifikátoru.
Syntaxe
{ table_name | view_name }
Příklady
-- 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;
Název sloupce
Identifikuje sloupec v rámci relace. Sloupec může být kvalifikovaný s názvem relace nebo nekvalifikovaný pomocí jednoduchého identifikátoru.
Syntaxe
{ [ relation_name . ] column_identifier |
IDENTIFIER clause }
Parametry
- table_name: Kvalifikovaný nebo nekvalifikovaný název tabulky obsahující sloupec.
- view_name: Kvalifikovaný nebo nekvalifikovaný název zobrazení, které obsahuje sloupec.
- column_identifier: Identifikátor, který určuje název sloupce.
-
IDENTIFIER klauzule: Mapování konstanty
STRINGna název sloupce.
Identifikovaný sloupec musí existovat v rámci relace.
Azure Databricks podporuje speciální sloupec _metadata. Tento pseudosloupec typu struktury je součástí každé tabulky a lze ho použít k načtení informací o metadatech o řádcích v tabulce.
Varování
Pokud schéma tabulky obsahuje sloupec s názvem _metadata, dotazy vrátí sloupec ze zdroje dat, nikoli metadata souboru. Pseudosloupce _metadata nebude přístupný.
Názvy sloupců v tabulkách Delta Lake bez vlastnosti mapování sloupců ('delta.columnMapping.mode' = 'name') nesmí obsahovat znaky ' ' (mezera), ',', ';', '{', '}', , '('. ')'.
'\n', '\t' a '='.
Název sloupce v AVRO tabulkách musí začínat písmenem '_' unicode (včetně písmen jiného '_'typu než ASCII) a za ním musí následovat kombinace písmen a číslic Unicode.
Příklady
-- 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`);
Název pole
Identifikuje pole v rámci struktury. Pole musí být specifikované pomocí cesty vedoucí až ke struktuře obsahující pole.
Syntaxe
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parametry
- expr: Výraz typu STRUCT.
- field_identifier: Identifikátor, který určuje název pole.
-
IDENTIFIER klauzule: Mapování konstanty
STRINGna název pole.
Na hluboce vnořené pole lze odkazovat zadáním identifikátoru pole podél cesty ke kořenové struktuře.
Názvy polí v tabulkách Delta Lake bez vlastnosti mapování sloupců ('delta.columnMapping.mode' = 'name') nesmí obsahovat znaky ' ' (mezera), ',', ';', '{', '}', , '('. ')'.
'\n', '\t' a '='.
Název pole v AVRO tabulkách musí začínat písmenem '_' nebo písmenem Unicode (včetně písmen jiného '_'typu než ASCII) a za ním následuje kombinace písmen unicode a číslic.
Příklady
> 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;
Název proměnné
Identifikuje dočasnou proměnnou (relaci).
Proměnnou lze kvalifikovat pomocí názvu schématu (system.session nebo session) nebo nekvalifikované pomocí jednoduchého identifikátoru.
Syntaxe
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parametry
-
schema_name:
system.sessionnebosessionobsahuje všechny dočasné proměnné. - variable_identifier: Identifikátor, který určuje název proměnné.
Příklady
-- 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;
Název funkce
Identifikuje funkci. Funkce může být kvalifikovaná s názvem schématu nebo nekvalifikovaná pomocí jednoduchého identifikátoru.
Syntaxe
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parametry
- schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje funkci.
- function_identifier: Identifikátor, který určuje název funkce.
-
IDENTIFIER klauzule: Mapování konstanty
STRINGna název funkce.
Funkce vytvořené v hive_metastore sadě MŮŽOU obsahovat pouze alfanumerické znaky a podtržítka ASCII.
Příklady
-- 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;
Název procedury
Identifikuje proceduru. Postup může být kvalifikován názvem schématu, nebo nekvalifikován pomocí jednoduchého identifikátoru.
Syntaxe
{ [ schema_name . ] procedure_identifier |
IDENTIFIER clause }
Parametry
- schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje proceduru.
- procedure_identifier: Identifikátor, který určuje název procedury.
-
IDENTIFIER klauzule: Mapování konstanty
STRINGna název procedury.
Příklady
-- Invoking a procedure.
> CALL myproc();
Název parametru
Identifikuje parametr v těle uživatelem definované funkce SQL (SQL UDF) nebo procedury. Parametr může být kvalifikovaný pomocí identifikátoru rutiny nebo nekvalifikovaný pomocí jednoduchého identifikátoru.
Syntaxe
[ routine_identifier . ] parameter_identifier
Parametry
- routine_identifier: Identifikátor, který určuje název funkce nebo procedury.
- parameter_identifier: Identifikátor, který určuje název parametru.
Příklady
-- 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`;
Název štítku
Identifikuje popisek kompozitního příkazu nebo smyčkového příkazu.
Syntaxe
label_identifier
Parametry
- label_identifier: Identifikátor, který určuje název popisku.
Příklady
-- Execute a loop named `label` and leave it right away.
> BEGIN
label: LOOP
LEAVE label;
END LOOP label;
END;
Název podmínky
Identifikuje třídu chyb definovanou systémem nebo podmínku definovanou uživatelem v složeném příkazu .
Syntaxe
condition_identifier
Parametry
- condition_identifier: Identifikátor, který určuje název podmínky.
Příklady
-- Declare an exit handler for a DIVIDE_BY_ZERO condition
BEGIN
DECLARE a INT DEFAULT 1;
DECLARE b INT DEFAULT 5;
DECLARE EXIT HANDLER FOR DIVIDE_BY_ZERO
BEGIN
VALUES (15);
END;
SET a = 10;
SET a = b / 0;
VALUES (a);
END;
15
Alias tabulky
Označí odkaz na tabulku, dotaz, funkci tabulky nebo jinou formu relace.
Syntaxe
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parametry
- table_identifier: Identifikátor, který určuje název tabulky.
- column_identifierN: Volitelný identifikátor, který určuje název sloupce.
Pokud zadáte identifikátory sloupců, musí jejich číslo odpovídat počtu sloupců ve shodném vztahu.
Pokud nezadáte identifikátory sloupců, jejich názvy budou převzaty z označené relace.
Příklady
-- 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 `직원`;
Alias sloupce
Označí výsledek výrazu v SELECT seznamu pro referenci.
Pokud je výraz funkcí generátoru hodnotných tabulek, alias označuje seznam vytvořených sloupců.
Syntaxe
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parametry
Přestože aliasy sloupců nemusí být v seznamu výběru jedinečné, pro odkazování na alias podle názvu je vyžadována jedinečnost.
Příklady
-- 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
Název kolace
Identifikuje řazení pro sloupec nebo výraz.
Syntaxe
collation_identifier
Parametry
- collation_identifier: Identifikátor, který určuje název kolace.
Seznam podporovaných kolací naleznete v části Podporované kolace. Podrobnosti o kolacích najdete v tématu Kolace.
Příklady
> SELECT 'hello' COLLATE UNICODE_CI;
hello
Název pověření
Identifikuje přihlašovací údaje pro přístup k úložišti v externím umístění nebo v cloudových službách s SDK poskytnutými poskytovatelem.
Syntaxe
credential_identifier
Parametry
- credential_identifier: Nekvalifikovaný identifikátor, který jednoznačně identifikuje přihlašovací údaje.
Příklady
`my_storage_cred`
my_storage_cred
Název umístění
Identifikuje umístění externího úložiště.
Syntaxe
location_identifier
Parametry
Příklady
`s3-json-data`
s3_json_data
Název sdílené složky
Identifikuje sdílenou složku pro přístup k datům sdíleným poskytovatelem.
Syntaxe
share_identifier
Parametry
- share_identifier: Nekvalifikovaný identifikátor, který jednoznačně identifikuje share.
Příklady
`public info`
`public-info`
public_info
Název poskytovatele
Identifikuje poskytovatele Delta Sharing.
Syntaxe
provider_identifier
Parametry
-
Nekvalifikovaný identifikátor, který jednoznačně identifikuje poskytovatele.
Příklady
`Good Corp`
`Good-corp`
Good_Corp
Jméno příjemce
Identifikuje příjemce pro sdílenou položku.
Syntaxe
recipient_identifier
Parametry
Příklady
`Good Corp`
`Good-corp`
Good_Corp
Název čisté místnosti
Identifikuje čistou místnost pro sadu spolupracovníků.
Syntaxe
clean_room_identifier
Parametry
- clean_room_identifier: Nekvalifikovaný identifikátor, který jednoznačně určuje čistou místnost v datových úložištích spolupracujících partnerů.
Příklady
`Clean-Room`
Clean_Room
Název svazku
Identifikuje objem katalogu Unity. Svazek může být kvalifikovaný s názvem schématu nebo nekvalifikovaný pomocí jednoduchého identifikátoru.
Syntaxe
[ schema_name .] volume_identifier
Parametry
- schema_name: Kvalifikovaný nebo nekvalifikovaný název schématu, který obsahuje svazek.
- volume_identifier: Nekvalifikovaný identifikátor, který jednoznačně identifikuje svazek v rámci schématu.
Příklady
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume