View a markdown version of this page

Nama dan pengidentifikasi - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Nama dan pengidentifikasi

Nama mengidentifikasi objek database, termasuk tabel dan kolom, serta pengguna dan kata sandi. Istilah nama dan pengenal dapat digunakan secara bergantian. Ada dua jenis pengidentifikasi, pengidentifikasi standar dan pengidentifikasi dikutip atau dibatasi. Pengidentifikasi hanya harus terdiri dari karakter UTF-8 yang dapat dicetak. Huruf ASCII dalam pengidentifikasi standar dan dibatasi tidak peka huruf besar dan dilipat menjadi huruf kecil dalam database. Dalam hasil kueri, nama kolom dikembalikan sebagai huruf kecil secara default. Untuk mengembalikan nama kolom dalam huruf besar, atur parameter deskripsi_field_name_in_uppercase konfigurasi ketrue.

Pengidentifikasi standar

Pengidentifikasi SQL standar mematuhi seperangkat aturan dan harus:

  • Mulailah dengan karakter alfabet byte tunggal ASCII atau karakter garis bawah, atau karakter UTF-8 multibyte sepanjang dua hingga empat byte.

  • Karakter selanjutnya dapat berupa karakter alfanumerik byte tunggal ASCII, garis bawah, atau tanda dolar, atau karakter UTF-8 multibyte sepanjang dua hingga empat byte.

  • Panjangnya antara 1 dan 127 byte, tidak termasuk tanda kutip untuk pengidentifikasi yang dibatasi.

  • Tidak mengandung tanda kutip dan tidak ada spasi.

  • Jangan menjadi kata kunci SQL yang dicadangkan.

Pengidentifikasi yang dibatasi

Pengidentifikasi yang dibatasi (juga dikenal sebagai pengenal yang dikutip) dimulai dan diakhiri dengan tanda kutip ganda (“). Jika Anda menggunakan pengenal yang dibatasi, Anda harus menggunakan tanda kutip ganda untuk setiap referensi ke objek itu. Pengidentifikasi dapat berisi karakter standar UTF-8 yang dapat dicetak selain tanda kutip ganda itu sendiri. Oleh karena itu, Anda dapat membuat nama kolom atau tabel yang menyertakan karakter ilegal, seperti spasi atau simbol persen.

Huruf ASCII dalam pengidentifikasi yang dibatasi tidak peka huruf besar/kecil dan dilipat menjadi huruf kecil. Untuk menggunakan tanda kutip ganda dalam string, Anda harus mendahuluinya dengan karakter tanda kutip ganda lainnya.

Case-sensitive pengidentifikasi

Case-sensitive pengidentifikasi (juga dikenal sebagai pengidentifikasi huruf campuran) dapat berisi huruf besar dan huruf kecil. Untuk menggunakan pengidentifikasi peka huruf besar/kecil, Anda dapat mengatur konfigurasi enable_case_sensitive_identifier ketrue. Anda dapat mengatur konfigurasi ini untuk cluster atau untuk sesi. Untuk informasi selengkapnya, lihat Nilai parameter default di Panduan Manajemen Amazon Redshift danenable_case_sensitive_identifier.

Nama kolom sistem

Nama kolom sistem PostgreSQL berikut tidak dapat digunakan sebagai nama kolom di kolom yang ditentukan pengguna. Untuk informasi selengkapnya, lihat https://www.postgresql.org/docs/8.0/static/ddl-system-columns.html.

  • oid

  • tableoid

  • xmin

  • cmin

  • xmax

  • cmax

  • ctid

Contoh

Tabel ini menunjukkan contoh pengidentifikasi yang dibatasi, output yang dihasilkan, dan diskusi:

Sintaksis Hasil Diskusi
“kelompok” grup GROUP adalah kata yang dicadangkan, jadi penggunaannya dalam pengenal memerlukan tanda kutip ganda.
“" "DI MANA" "” “dimana” WHERE juga merupakan kata yang dicadangkan. Untuk memasukkan tanda kutip dalam string, hindari setiap karakter tanda kutip ganda dengan karakter tanda kutip ganda tambahan.
“Nama ini” nama ini Tanda kutip ganda diperlukan untuk melestarikan ruang.
“Ini “" APAKAH ITULA" "” ini “apakah itu” Tanda kutip yang mengelilingi IS IT masing-masing harus didahului dengan tanda kutip tambahan untuk menjadi bagian dari nama.

Untuk membuat tabel bernama grup dengan kolom bernama ini “apakah itu”:

create table "group" ( "This ""IS IT""" char(10));

Kueri berikut mengembalikan hasil yang sama:

select "This ""IS IT""" from "group"; this "is it" -------------- (0 rows)
select "this ""is it""" from "group"; this "is it" -------------- (0 rows)

table.columnSintaks yang memenuhi syarat berikut ini juga mengembalikan hasil yang sama:

select "group"."this ""is it""" from "group"; this "is it" -------------- (0 rows)

Perintah CREATE TABLE berikut membuat tabel dengan garis miring dalam nama kolom:

create table if not exists city_slash_id( "city/id" integer not null, state char(2) not null);