Kata dan skema yang dipesan

Berlaku untuk:check ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime

Kata yang dipesan adalah harfiah yang digunakan sebagai kata kunci oleh bahasa SQL yang tidak boleh digunakan sebagai pengidentifikasi untuk menghindari perilaku yang tidak terduga.

Nama skema yang dipesan memiliki arti khusus untuk Azure Databricks.

Kata yang dicadangkan

Azure Databricks tidak secara resmi melarang harfiah tertentu untuk digunakan sebagai pengidentifikasi.

Namun, untuk menggunakan salah satu daftar pengidentifikasi berikut sebagai alias tabel, Anda harus mengelilingi nama dengan back-ticks (').

  • ANTI
  • CROSS
  • KECUALI
  • PENUH
  • BATIN
  • BERPOTONGAN
  • BERGABUNG
  • LATERAL
  • KIRI
  • MINUS
  • ALAMI
  • PADA
  • TEPAT
  • SEMI
  • UNION
  • MENGGUNAKAN

Kata-kata khusus dalam ekspresi

Daftar pengidentifikasi berikut dapat digunakan di mana saja, tetapi Azure Databricks memperlakukannya lebih disukai sebagai kata kunci dalam ekspresi dalam konteks tertentu:

  • NULL

    Nilai SQL NULL .

  • DEFAULT

    Menunjukkan default kolom.

  • TRUE

    Nilai boolean true SQL.

  • FALSE

    Nilai boolean false SQL.

  • LATERAL

    Digunakan sebagai kualifikasi kolom untuk menunjukkan korelasi lateral eksplisit.

Gunakan back-ticks (NULL dan DEFAULT) atau kualifikasi nama kolom dengan nama tabel atau alias.

Azure Databricks CURRENT_ menggunakan awalan untuk merujuk ke beberapa pengaturan konfigurasi atau variabel konteks lainnya. Awalan underbar (_) ditujukan untuk kolom pseudo Azure Databricks. Di Databricks Runtime, kolom pseudo yang ada adalah kolom _metadata.

Pengidentifikasi dengan awalan ini tidak diperlakukan lebih disukai. Namun, hindari alias kolom atau kolom menggunakan awalan ini untuk menghindari perilaku yang tidak terduga.

Nama katalog yang dicadangkan

Azure Databricks mencadangkan daftar nama katalog berikut untuk penggunaan saat ini atau di masa mendatang:

  • Nama katalog dimulai dengan SYS
  • Nama katalog dimulai dengan DATABRICKS

Hindari menggunakan nama-nama ini.

Nama skema yang dipesan

Azure Databricks mencadangkan daftar nama skema berikut untuk penggunaan saat ini atau di masa mendatang:

  • BUILTIN

    Penggunaan di masa mendatang untuk memenuhi syarat fungsi bawaan.

  • SESSION

    Penggunaan di masa mendatang untuk memenuhi syarat tampilan dan fungsi sementara.

  • INFORMATION_SCHEMA

    Memegang skema informasi Standar SQL.

  • Nama skema yang dimulai dengan SYS atau DATABRICKS

Hindari menggunakan nama-nama ini.

Kata khusus ANSI

Azure Databricks tidak memberlakukan kata yang dipesan ANSI. Daftar kata kunci SQL2016 berikut disediakan hanya untuk tujuan informasi.

  • J

    SEMUA, UBAH, DAN, APA PUN, ARRAY, SEBAGAI, PADA, OTORISASI

  • B

    ANTARA, KEDUANYA, OLEH

  • C

    CASE, CAST, CHECK, COLLATE, COLUMN, COMMIT, CONSTRAINT, CREATE, CROSS, CUBE, CURRENT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER

  • D

    HAPUS, JELASKAN, BERBEDA, HILANGKAN

  • E

    ELSE, END, ESCAPE, EXCEPT, EXISTS, EXTERNAL, EXTRACT

  • F

    FALSE, FETCH, FILTER, FOR, FOREIGN, FROM, FULL, FUNCTION

  • G

    GLOBAL, GRANT, GROUP, GROUPING

  • H

    MEMILIKI

  • I

    IN, INNER, INSERT, INTERSECT, INTERVAL, INTO, IS

  • J

    BERGABUNG

  • L

    TERKEMUKA, KIRI, SEPERTI, LOKAL

  • N

    NATURAL, NO, NOT, NULL

  • O

    DARI, PADA, HANYA, ATAU, PESANAN, KELUAR, LUAR, TUMPANG TINDIH

  • P

    PARTISI, POSISI, PRIMER

  • R

    RENTANG, REFERENSI, CABUT, KANAN, PUTAR KEMBALI, ROLLUP, BARIS, BARIS

  • S

    SELECT, SESSION_USER, SET, SOME, START

  • T

    TABLE, TABLESAMPLE, THEN, TIME, TO, TRAILING, TRUE, TRUNCATE

  • U

    UNION, UNIQUE, UNKNOWN, UPDATE, USER, USING

  • V

    NILAI

  • W

    KETIKA, DI MANA, JENDELA, DENGAN

Contoh

-- Using SQL keywords
> CREATE TEMPORARY VIEW where(where) AS (VALUES (1));

> SELECT where from FROM where select;
  1

-- Usage of NULL
> SELECT NULL, `null`, T.null FROM VALUES(1) AS T(null);
 NULL   1       1

-- current_date is eclipsed by the column alias T.current_date
> SELECT (SELECT current_date), current_date, current_date()
    FROM VALUES(1) AS T(current_date);
 2021-10-23     1       2021-10-23

-- Reserved keyword ANTI cannot be used as table alias
> SELECT * FROM VALUES(1) AS ANTI;
Error in query: no viable alternative at input 'ANTI'

> SELECT * FROM VALUES(1) AS `ANTI`;
  1