noms

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Identifie différentes sortes d’objets dans Azure Databricks.

Les limitations suivantes s’appliquent à tous les noms d’objets dans Unity Catalog :

  • Les noms des objets ne doivent pas dépasser 255 caractères.
  • Les caractères spéciaux suivants ne sont pas autorisés :
    • Point (.)
    • Espace ( )
    • Barre oblique (/)
    • Tous les caractères de contrôle ASCII (hexadécimal 00-1F)
    • Caractère SUPPRIMER (hexadécimal 7F)
  • Unity Catalog stocke tous les noms d’objets en minuscules.
  • Lorsque vous référencez des noms UC dans SQL, vous devez utiliser des backticks pour les noms d’échappement qui contiennent des caractères spéciaux tels que des traits d’union (-).

Remarque

Les noms de colonnes peuvent utiliser des caractères spéciaux, mais le nom doit être placé dans une séquence d’échappement avec des backticks dans toutes les instructions SQL si des caractères spéciaux sont utilisés. Unity Catalog conserve la casse des noms de colonne, mais les requêtes sur les tables Unity Catalog ne respectent pas la casse.

Nom de la connexion

Identifie une connexion étrangère. Une connexion étrangère sert de lien vers un système étranger, par exemple PostgreSQL et peut ensuite être utilisée pour référencer ses catalogues, schémas et tables.

Syntaxe

connection_identifier

Paramètres

Exemples

> CREATE CONNECTION my_postgresql ...;

Nom du catalogue

Identifie un catalogue. Un catalogue représente un regroupement d’objets qui peut être encore subdivisé en schémas.

Syntaxe

catalog_identifier

Paramètres

Exemples

> 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

Nom du schéma

Identifie un schéma. Un schéma représente un regroupement d’objets dans un catalogue.

Syntaxe

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Paramètres

Les schémas créés dans hive_metastore ne peuvent contenir que des caractères ASCII alphanumériques et des traits de soulignement (INVALID_SCHEMA_OR_RELATION_NAME).

Exemples

> 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 `数据库架构`;

Nom de la base de données

Synonyme de Nom du schéma.

Bien que SCHEMA et DATABASE soient interchangeables, il est préférable d’utiliser SCHEMA.

Nom de la table

Identifie un objet table. La table peut être qualifiée avec un nom de schéma ou non qualifiée à l’aide d’un identificateur simple.

Syntaxe

{ [ 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 )

Paramètres

  • schema_name : nom qualifié ou non du schéma contenant la table.

  • table_identifier : identificateur qui spécifie le nom de la table ou table_alias.

  • file_format : json, csv, avro, parquet, orc, binaryFile, text ou delta (non-respect de la casse).

  • path_to_table : emplacement de la table dans le système de fichiers. Vous devez disposer de l’autorisation ANY_FILE pour pouvoir utiliser cette syntaxe.

  • Clause IDENTIFICATEUR : mappage d’une constante STRING à un nom de tableau.

  • temporal_spec : si utilisé, fait référence à une table Delta au point dans le temps ou à la version spécifié.

    Une spécification temporelle ne peut être employée que dans le contexte d’une requête ou d’une instruction MERGE USING.

    • @ timestamp_encoding : littéral Bigint positif qui encode un timestamp au format yyyyMMddHHmmssSSS.
    • @V version : littéral entier positif identifiant la version de la table Delta.
    • timestamp_expression : expression simple donnant un TIMESTAMP. timestamp_expressiom doit être une expression constante, mais peut contenir current_date() ou current_timestamp().
    • version : littéral entier ou littéral de chaîne identifiant la version de la table Delta.
  • credential_spec

    Vous pouvez utiliser des informations d’identification applicables pour accéder à un path_to_table qui n’est pas incorporé dans un emplacement externe.

    • credential_name

      Nom des informations d’identification utilisées pour accéder à l’emplacement de stockage.

Les tables créées dans hive_metastore ne peuvent contenir que des caractères ASCII alphanumériques et des traits de soulignement (INVALID_SCHEMA_OR_RELATION_NAME).

Si le nom n’est pas qualifié et ne fait pas référence à un alias de table connu, Azure Databricks essaie tout d’abord de résoudre la table dans le schéma actuel.

Si le nom est qualifié par un schéma, Azure Databricks tente de résoudre la table dans le catalogue actuel.

Pour plus d’informations sur la résolution de noms, consultez Résolution de table et d’affichage .

Azure Databricks génère une erreur si vous utilisez une temporal_spec pour une table qui n’est pas au format Delta Lake.

Exemples

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

Nom de l’affichage

Identifie une vue. La vue peut être qualifiée avec un nom de schéma ou non qualifiée à l’aide d’un identificateur simple.

Syntaxe

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Paramètres

Les vues créées dans hive_metastore ne peuvent contenir que des caractères ASCII alphanumériques et des traits de soulignement (INVALID_SCHEMA_OR_RELATION_NAME).

Exemples

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

Nom de la colonne

Identifie une colonne dans une table ou une vue. La colonne peut être qualifiée avec un nom de table ou de vue, ou non qualifiée à l’aide d’un identificateur simple.

Syntaxe

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

Paramètres

  • table_name : nom qualifié ou non de la table contenant la colonne.
  • view_name : nom qualifié ou non de la vue contenant la colonne.
  • column_identifier : identificateur qui spécifie le nom de la colonne.
  • Clause IDENTIFICATEUR : mappage d’une constante STRING à un nom de colonne.

La colonne identifiée doit exister dans la table ou la vue.

Azure Databricks prend en charge une colonne _metadata spéciale. Cette pseudo colonne de type struct fait partie de chaque table, et peut être utilisée pour récupérer des informations de métadonnées sur les lignes de la table.

Avertissement

Si le schéma de table contient une colonne nommée _metadata, les requêtes retournent la colonne de la source de données, et non les métadonnées du fichier. La colonne pseudo _metadata n’est pas accessible.

Les noms de colonnes dans les tables Delta Lake sans propriété de mappage de colonne ('delta.columnMapping.mode' = 'name') ne doivent pas contenir les caractères ' ' (espace), ',', ';', '{', '}', '(', ')'. '\n', '\t'et '='.

Le nom de colonne dans les tables AVRO doit commencer par '_' ou une lettre Unicode (y compris des lettres non ASCII) et être suivi d’une combinaison de '_', de lettres Unicode et de chiffres.

Exemples

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

Nom du champ

Identifie un champ dans un struct. Le champ doit être qualifié avec le chemin jusqu’au struct contenant le champ.

Syntaxe

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

Paramètres

Pour faire référence à un champ profondément imbriqué, vous pouvez indiquer l’identificateur de champ sur le chemin du struct racine.

Les noms de champs dans les tables Delta Lake sans propriété de mappage de colonnes ('delta.columnMapping.mode' = 'name') ne doivent pas contenir les caractères ' ' (espace), ',', ';', '{', '}', '(', ')'. '\n', '\t'et '='.

Le nom du champ dans les tables AVRO doit commencer par '_' ou une lettre Unicode (y compris des lettres non ASCII) et être suivi d’une combinaison de '_', de lettres Unicode et de chiffres.

Exemples

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

Nom de la variable

Identifie une variable temporaire (session). La variable peut être qualifiée avec un nom de schéma (system.session ou session) ou non qualifiée à l’aide d’un identificateur simple.

Syntaxe

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Paramètres

  • schema_name : system.session ou session contient toutes les variables temporaires.
  • variable_identifier : Un identificateur qui spécifie le nom de la variable.

Exemples


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

Nom de la fonction

Identifie une fonction. La fonction peut être qualifiée avec un nom de schéma ou non qualifiée à l’aide d’un identificateur simple.

Syntaxe

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Paramètres

Les fonctions créées dans hive_metastore peuvent uniquement contenir des caractères ASCII alphanumériques et des traits de soulignement.

Exemples

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

Nom du paramètre

Identifie un paramètre dans le corps d’une fonction SQL définie par l’utilisateur (UDF). La fonction peut être qualifiée avec un identificateur de fonction ou non qualifiée à l’aide d’un identificateur simple.

Syntaxe

[ function_identifier . ] parameter_identifier

Paramètres

Exemples

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

Alias de table

Étiquette une référence de table, une requête, une fonction de table ou une autre forme de relation.

Syntaxe

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

Paramètres

Si vous indiquez des identificateurs de colonne, leur nombre doit correspondre au nombre de colonnes dans la relation correspondante.

Si vous ne fournissez pas d’identificateurs de colonne, leurs noms sont hérités de la relation étiquetée.

Exemples

-- 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 de colonne

Étiquette le résultat d’une expression dans une liste SELECT à des fins de référence.

Si l’expression est une fonction de générateur table, l’alias étiquette la liste des colonnes produites.

Syntaxe

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

Paramètres

Bien que les alias de colonnes ne soient pas nécessairement uniques dans la liste SELECT, l’unicité est obligatoire pour faire référence à un alias par son nom.

Exemples

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

Credential name (Nom des informations d’identification)

Identifie des informations d’identification pour permettre d’accéder à un stockage situé à un emplacement externe.

Syntaxe

credential_identifier

Paramètres

  • credential_identifier : identificateur non qualifié qui spécifie de façon unique les informations d’identification.

Exemples

Nom de l’emplacement

Identifie un emplacement de stockage externe.

Syntaxe

location_identifier

Paramètres

  • location_identifier : identificateur non qualifié qui spécifie de façon unique l’emplacement.

Exemples

`s3-json-data`

s3_json_data

Nom de partage

Identifie un partage pour permettre d’accéder aux données partagées par un fournisseur.

Syntaxe

share_identifier

Paramètres

  • share_identifier : identificateur non qualifié qui spécifie de façon unique le partage.

Exemples

`public info`

`public-info`

public_info

Nom du fournisseur

Identifie un fournisseur de partage Delta.

Syntaxe

provider_identifier

Paramètres

Exemples

`Good Corp`

`Good-corp`

Good_Corp

Nom du destinataire

Identifie un destinataire d’un partage.

Syntaxe

recipient_identifier

Paramètres

  • recipient_identifier : identificateur non qualifié qui spécifie de façon unique le destinataire.

Exemples

`Good Corp`

`Good-corp`

Good_Corp

Nom du volume

Identifie un volume Unity Catalog. Le volume peut être qualifié avec un nom de schéma ou non qualifié à l’aide d’un identificateur simple.

Syntaxe

[ schema_name .] volume_identifier

Paramètres

  • schema_name : nom qualifié ou non du schéma contenant la volume.
  • volume_identifier : identificateur non qualifié qui spécifie de façon unique le volume dans le schéma.

Exemples

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume