Bagikan melalui


Nama

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mengidentifikasi berbagai jenis objek di Azure Databricks.

Batasan berikut berlaku untuk semua nama objek di Unity Catalog:

  • Nama objek tidak boleh melebihi 255 karakter.
  • Karakter khusus berikut ini tidak diperbolehkan:
    • Titik (.)
    • Spasi ( )
    • Garis miring (/)
    • Semua karakter kontrol ASCII (00-1F dalam kode heksadesimal)
    • Karakter DELETE (heks 7F)
  • Katalog Unity menyimpan semua nama objek sebagai huruf kecil.
  • Saat mereferensikan nama UC di SQL, Anda harus menggunakan backtick untuk meloloskan nama yang berisi karakter khusus seperti tanda hubung (-).

Catatan

Nama kolom dapat menggunakan karakter khusus, tetapi nama harus diapit dengan tanda backtick di semua pernyataan SQL jika karakter khusus digunakan. Katalog Unity mempertahankan casing nama kolom, tetapi kueri terhadap tabel Katalog Unity tidak peka huruf besar/kecil.

Nama koneksi

Mengidentifikasi koneksi asing. Koneksi asing berfungsi sebagai tautan ke sistem asing, seperti PostgreSQL dan kemudian dapat digunakan untuk mereferensikan katalog, skema, dan tabelnya.

Sintaks

connection_identifier

Parameter

Contoh

> CREATE CONNECTION my_postgresql ...;

Nama katalog

Mengidentifikasi sebuah katalog. Katalog menyediakan pengelompokan objek yang dapat dibagi lebih lanjut menjadi skema.

Sintaks

catalog_identifier

Parameter

Contoh

> 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

Nama skema

Mengidentifikasi skema. Skema menyediakan pengelompokan objek dalam katalog.

Sintaks

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parameter

Skema yang dibuat di hive_metastore hanya dapat berisi karakter ASCII alfanumerik dan garis bawah (INVALID_SCHEMA_OR_RELATION_NAME).

Contoh

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

Nama database

Sinonim untuk nama skema.

Sementara penggunaan dari SCHEMA, dan DATABASE dapat dipertukarkan, SCHEMA lebih disukai.

Nama tabel

Mengidentifikasi objek tabel. Tabel dapat yang memenuhi syarat dengan nama skema atau yang tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

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

Parameter

  • schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi tabel.

  • table_identifier: Pengidentifikasi yang menentukan nama tabel atau table_alias.

  • file_format: Salah satu dari json, csv, avro, parquet, orc, binaryFile, text, delta (tidak peka huruf besar/kecil).

  • path_to_table: Lokasi tabel dalam sistem file. Anda harus memiliki izin ANY_FILE untuk menggunakan sintaksis ini.

  • IDENTIFIER klausa: Pemetaan konstanta STRING kepada nama tabel.

  • temporal_spec: Saat digunakan mereferensikan tabel Delta pada titik waktu atau versi yang ditentukan.

    Anda dapat menggunakan spesifikasi temporal hanya dalam konteks kueri atau MERGE USING.

    • @ timestamp_encoding: Sebuah literal Bigint positif yang mengkodekan stempel waktu dalam format yyyyMMddHHmmssSSS.
    • @V versi: Angka bulat positif yang menentukan versi tabel Delta.
    • timestamp_expression: Ekspresi sederhana yang hasilnya berupa TIMESTAMP. timestamp_expressiom harus menjadi ekspresi konstan, tetapi mungkin mengandung current_date() atau current_timestamp().
    • versi: Angka bulat atau string literal yang mengidentifikasi versi tabel Delta.
  • option_spec: Saat digunakan menentukan arahan yang akan diteruskan ke sumber data seperti kredensial untuk mengakses lokasi penyimpanan atau 'write.split-size' untuk mengontrol INSERT perilaku.

    • option_key

      Kunci opsi. Kunci dapat terdiri dari satu atau beberapa pengidentifikasi yang dipisahkan oleh titik, atau string literal.

      Kunci opsi harus unik dan peka huruf besar/kecil.

    • option_val

      Nilai untuk opsi tersebut. Ekspresi konstan jenis BOOLEAN, STRING, INTEGER, atau DECIMAL.

Tabel yang dibuat di hive_metastore hanya dapat berisi karakter alfanumerik ASCII dan garis bawah (INVALID_SCHEMA_OR_RELATION_NAME).

Jika nama tidak memenuhi syarat dan tidak mereferensikan alias tabel yang diketahui, Azure Databricks pertama kali mencoba menyelesaikan tabel dalam skema saat ini.

Jika namanya memenuhi syarat dengan skema, Azure Databricks mencoba menyelesaikan tabel di katalog saat ini.

Lihat Tabel dan tampilan resolusi untuk informasi selengkapnya tentang resolusi nama.

Azure Databricks menimbulkan kesalahan jika Anda menggunakan temporal_spec untuk tabel yang tidak dalam format Delta Lake.

Contoh

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

Nama tampilan

Mengidentifikasi tampilan. Tampilan dapat dikualifikasi dengan nama skema atau tidak dikualifikasi menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi tampilan.
  • view_identifier: Pengidentifikasi yang menentukan nama tampilan atau pengidentifikasi tampilan dari sebuah CTE.
  • klausa IDENTIFIER: Pemetaan konstanta STRING ke nama tampilan.

Tampilan yang dibuat dalam hive_metastore hanya dapat berisi karakter dan garis bawah ASCII alfanumerik (INVALID_SCHEMA_OR_RELATION_NAME).

Contoh

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

Nama relasi

Mengidentifikasi tampilan atau tabel. Relasi dapat memenuhi syarat dengan nama skema atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

{ table_name | view_name }

Contoh

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

Nama kolom

Mengidentifikasi kolom dalam relasi. Kolom dapat dikualifikasi dengan nama relasi, atau ditidak dikualifikasi menggunakan identifier sederhana.

Sintaks

{ [ relation_name . ] column_identifier |
  IDENTIFIER clause }

Parameter

  • table_name: Nama tabel yang berkualifikasi atau tidak berkualifikasi yang berisi kolom.
  • view_name: Nama tampilan dengan kualifikasi atau tanpa kualifikasi yang berisi kolom.
  • column_identifier: Pengidentifikasi yang menentukan nama kolom.
  • klausa IDENTIFIER: Pemetaan konstanta STRING ke nama kolom.

Kolom yang diidentifikasi harus ada dalam relasi.

Azure Databricks mendukung kolom _metadata khusus. Kolom khusus jenis struktur ini adalah bagian dari semua tabel dan dapat digunakan untuk mengambil informasi metadata mengenai baris-baris dalam tabel.

Peringatan

Jika skema tabel berisi kolom bernama _metadata, kueri akan mengembalikan kolom dari sumber data, dan bukan metadata file. Kolom pseudo _metadata tidak akan dapat diakses.

Nama kolom dalam tabel Delta Lake tanpa properti pemetaan kolom ('delta.columnMapping.mode' = 'name') tidak boleh berisi karakter ' ' (spasi), ',', ';', '{', '}', '(', ')'. '\n', '\t', dan '='.

Nama kolom dalam tabel AVRO harus dimulai dengan '_' atau huruf Unicode (termasuk huruf non-ASCII) dan diikuti dengan kombinasi huruf dan digit '_', Unicode.

Contoh

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

Nama bidang

Mengidentifikasi bidang dalam struktur. Bidang harus memenuhi syarat dengan jalur hingga struktur yang berisi bidang tersebut.

Sintaks

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

Parameter

Bidang yang sangat berlapis dapat diacu dengan menentukan pengidentifikasi bidang di sepanjang jalur ke struktur induk.

Nama bidang dalam tabel Delta Lake tanpa properti pemetaan kolom ('delta.columnMapping.mode' = 'name') tidak boleh berisi karakter ' ' (spasi), ',', ';', '{', '}', '(', ')'. '\n', '\t', dan '='.

Nama bidang dalam tabel AVRO harus dimulai dengan '_' atau huruf Unicode (termasuk huruf non-ASCII) dan diikuti dengan kombinasi '_', huruf dan digit Unicode.

Contoh

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

Nama variabel

Mengidentifikasi variabel sementara (sesi). Variabel dapat dikualifikasikan dengan nama skema (system.session atau session), atau tanpa kualifikasi menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: system.session atau session yang berisi semua variabel sementara.
  • variable_identifier: Pengidentifikasi yang menentukan nama variabel.

Contoh


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

Nama fungsi

Mengidentifikasi fungsi. Fungsi ini dapat ditentukan dengan nama skema, atau tidak ditentukan menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi fungsi .
  • function_identifier: Pengidentifikasi yang menentukan nama fungsi.
  • klausa IDENTIFIER: Pemetaan konstanta STRING ke nama fungsi.

Fungsi yang dibuat di hive_metastore hanya dapat berisi karakter ASCII alfanumerik dan garis bawah.

Contoh

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

Nama prosedur

Mengidentifikasi prosedur. Prosedur ini dapat memenuhi syarat dengan nama skema, atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] procedure_identifier |
  IDENTIFIER clause }

Parameter

Contoh

-- Invoking a procedure.
> CALL myproc();

Nama Parameter

Mengidentifikasi parameter dalam isi fungsi yang ditentukan pengguna SQL (SQL UDF) atau prosedur. Parameter dapat memenuhi syarat dengan pengidentifikasi rutin, atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

[ routine_identifier . ] parameter_identifier

Parameter

Contoh

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

Nama label

Mengidentifikasi label pernyataan gabungan atau pernyataan perulangan.

Sintaks

label_identifier

Parameter

Contoh

-- Execute a loop named `label` and leave it right away.
> BEGIN
    label: LOOP
      LEAVE label;
    END LOOP label;
  END;

Nama kondisi

Mengidentifikasi kelas kesalahan yang ditentukan sistem sebagai atau kondisi yang ditentukan pengguna dalam pernyataan gabungan .

Sintaks

condition_identifier

Parameter

Contoh

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

Tabel alias

Memberi label referensi tabel, kueri, fungsi tabel, atau bentuk hubungan lainnya.

Sintaks

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

Parameter

Jika Anda menyediakan pengidentifikasi kolom, jumlahnya harus cocok dengan jumlah kolom dalam relasi yang cocok.

Jika Anda tidak menyediakan pengidentifikasi kolom, namanya diwarisi dari relasi berlabel.

Contoh

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

Memberi label hasil ekspresi sebagai dalam daftar SELECT untuk referensi.

Jika ekspresi adalah fungsi generator bernilai tabel , alias akan melabeli daftar kolom yang dihasilkan.

Sintaks

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

Parameter

Meskipun alias kolom tidak perlu unik dalam daftar pilihan, keunikan adalah persyaratan untuk merujuk alias dengan nama.

Contoh

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

Nama kolasi

Mengidentifikasi kolasi untuk kolom atau ekspresi.

Sintaks

collation_identifier

Parameter

Untuk daftar kolasi yang didukung, lihat Kolasi yang didukung. Untuk detail tentang kolatasi, lihat Collation.

Contoh

> SELECT 'hello' COLLATE UNICODE_CI;
  hello

Nama kredensial

Mengidentifikasi kredensial untuk mengakses penyimpanan di lokasi eksternal atau layanan cloud dengan SDK penyedia.

Sintaks

credential_identifier

Parameter

  • credential_identifier: Pengidentifikasi yang tidak memenuhi syarat yang secara unik mengidentifikasi kredensial.

Contoh

`my_storage_cred`

my_storage_cred

Nama lokasi

Mengidentifikasi lokasi penyimpanan eksternal.

Sintaks

location_identifier

Parameter

  • location_identifier: Pengidentifikasi tanpa kualifikasi yang secara unik mengidentifikasi lokasi.

Contoh

`s3-json-data`

s3_json_data

Nama saham

Mengidentifikasi pembagian untuk mengakses data yang dibagikan oleh penyedia.

Sintaks

share_identifier

Parameter

  • share_identifier: Pengidentifikasi tanpa batasan yang secara unik mengidentifikasi bagian.

Contoh

`public info`

`public-info`

public_info

Nama penyedia

Mengidentifikasi penyedia layanan Delta Sharing.

Sintaks

provider_identifier

Parameter

  • provider_identifier

    Pengidentifikasi yang tidak memenuhi syarat yang secara unik mengidentifikasi penyedia.

Contoh

`Good Corp`

`Good-corp`

Good_Corp

Nama penerima

Mengidentifikasi penerima pembagian.

Sintaks

recipient_identifier

Parameter

  • recipient_identifier: Pengidentifikasi yang tidak terikat syarat yang secara unik mengidentifikasi penerima.

Contoh

`Good Corp`

`Good-corp`

Good_Corp

Nama Ruang Bersih

Mengidentifikasi ruang bersih untuk sekelompok kolaborator.

Sintaks

clean_room_identifier

Parameter

  • clean_room_identifier: Pengidentifikasi tanpa kualifikasi yang secara unik menentukan ruang bersih di metastore para kolaborator.

Contoh

`Clean-Room`

Clean_Room

Nama volume

Identifikasi volume Unity Catalog. Volume dapat memiliki kualifikasi dengan nama skema atau tidak memiliki kualifikasi menggunakan pengidentifikasi sederhana.

Sintaks

[ schema_name .] volume_identifier

Parameter

  • schema_name: Nama skema yang berkualifikasi atau tidak berkualifikasi yang mencakup volume.
  • volume_identifier: Pengidentifikasi tanpa kualifikasi yang secara unik mengidentifikasi volume dalam skema.

Contoh

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume