Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Databricks SQL
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)
- Titik (
- 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
- connection_identifier: Identifier yang secara unik mengidentifikasi koneksi.
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
- catalog_identifier: Pengidentifikasi yang secara unik mengidentifikasi katalog.
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
- catalog_name: Nama katalog yang ada.
- schema_identifier: Pengidentifikasi yang secara unik mengidentifikasi skema.
-
IDENTIFIER klausa: Pemetaan konstanta
STRING
ke nama skema.
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 mengandungcurrent_date()
ataucurrent_timestamp()
. - versi: Angka bulat atau string literal yang mengidentifikasi versi tabel Delta.
-
@ timestamp_encoding: Sebuah literal Bigint positif yang mengkodekan stempel waktu dalam format
option_spec: Saat digunakan menentukan arahan yang akan diteruskan ke sumber data seperti kredensial untuk mengakses lokasi penyimpanan atau
'write.split-size'
untuk mengontrolINSERT
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
, atauDECIMAL
.
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
- expr: Ekspresi jenis STRUKTUR.
- field_identifier: Pengidentifikasi yang menentukan nama bidang.
-
IDENTIFIER klausa: Pemetaan konstanta
STRING
ke nama kolom.
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
atausession
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
- schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi prosedur.
- procedure_identifier: Pengidentifikasi yang menentukan nama prosedur.
-
IDENTIFIER klausa: Pemetaan konstanta
STRING
ke nama prosedur.
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
- routine_identifier: Pengidentifikasi yang menentukan nama fungsi atau prosedur.
- parameter_identifier: Pengidentifikasi yang menentukan nama 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
- label_identifier: Pengidentifikasi yang menentukan nama label.
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
- condition_identifier: Pengidentifikasi yang menentukan nama kondisi.
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
- table_identifier: Pengidentifikasi yang menentukan nama tabel.
- column_identifierN: Pengidentifikasi opsional yang menentukan nama kolom.
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
- column_identifier: Pengidentifikasi yang menentukan nama kolom.
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
- collation_identifier: Pengidentifikasi yang menentukan nama kolasi.
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
-
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