View a markdown version of this page

Jenis karakter - 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.

Jenis karakter

Tipe data karakter termasuk CHAR (karakter) dan VARCHAR (karakter bervariasi).

Penyimpanan dan rentang

Tipe data CHAR dan VARCHAR didefinisikan dalam istilah byte, bukan karakter. Kolom CHAR hanya dapat berisi karakter byte tunggal, sehingga kolom CHAR (10) dapat berisi string dengan panjang maksimum 10 byte. Sebuah VARCHAR dapat berisi karakter multibyte, hingga maksimal empat byte per karakter. Misalnya, kolom VARCHAR (12) dapat berisi 12 karakter byte tunggal, 6 karakter dua byte, 4 karakter tiga byte, atau 3 karakter empat byte.

Nama Penyimpanan Rentang (lebar kolom)
CHAR, KARAKTER atau NCHAR Panjang string, termasuk sisa kosong (jika ada) 4096 bita
VARCHAR, VARIASI KARAKTER, atau NVARCHAR 4 byte + total byte untuk karakter, di mana setiap karakter bisa 1 hingga 4 byte. 65535 byte (64K -1)
BPCHAR Dikonversi ke CHAR dengan panjang tetap (256). 256 byte
TEXT Dikonversi ke VARCHAR (256). 260 byte
catatan

Sintaks CREATE TABLE mendukung kata kunci MAX untuk tipe data karakter. Contoh:

create table test(col1 varchar(max));

Untuk CHAR, MAX mendefinisikan lebar kolom sebagai 4096 byte.

Untuk VARCHAR, MAX mendefinisikan lebar kolom sebagai 65.535 byte dalam pernyataan CREATE TABLE. Untuk operasi dalam memori, VARCHAR (MAX) mendukung hingga 16.000.000 byte.

CHAR atau KARAKTER

Gunakan kolom CHAR atau CHARACTER untuk menyimpan string dengan panjang tetap. String ini dilapisi dengan blanko, sehingga kolom CHAR (10) selalu menempati 10 byte penyimpanan.

char(10)

Kolom CHAR tanpa spesifikasi panjang menghasilkan kolom CHAR (1).

VARCHAR atau KARAKTER VARIASI

Gunakan kolom VARCHAR atau CHARACTER VARIING untuk menyimpan string panjang variabel dengan batas tetap. String ini tidak dilapisi dengan blanko, jadi kolom VARCHAR (120) terdiri dari maksimum 120 karakter byte tunggal, 60 karakter dua byte, 40 karakter tiga byte, atau 30 karakter empat byte.

varchar(120)

Jika Anda menggunakan tipe data VARCHAR tanpa penentu panjang dalam pernyataan CREATE TABLE, panjang defaultnya adalah 256.

Fungsi stringsekarang mendukung hingga 16.000.000 byte. Misalnya, output fungsi CONCAT sebelumnya terbatas pada 65535 byte, tetapi sekarang mendukung hingga 16.000.000 byte.

SELECT LEN(CONCAT(REPEAT('A', 5000000), REPEAT('B', 5000000))) AS total_length; total_length -------------- 10000000

Jenis NCHAR dan NVARCHAR

Anda dapat membuat kolom dengan tipe NCHAR dan NVARCHAR (juga dikenal sebagai tipe NATIONAL CHARACTER dan NATIONAL CHARACTER VARIING). Tipe-tipe ini dikonversi ke tipe CHAR dan VARCHAR, masing-masing, dan disimpan dalam jumlah byte yang ditentukan.

Kolom NCHAR tanpa spesifikasi panjang diubah menjadi kolom CHAR (1).

Kolom NVARCHAR tanpa spesifikasi panjang diubah menjadi kolom VARCHAR (256).

Jenis TEKS dan BPCHAR

Anda dapat membuat tabel Amazon Redshift dengan kolom TEXT, tetapi dikonversi ke kolom VARCHAR (256) yang menerima nilai panjang variabel dengan maksimum 256 karakter.

Anda dapat membuat kolom Amazon Redshift dengan tipe BPCHAR (karakter kosong), yang dikonversi Amazon Redshift menjadi kolom CHAR (256) dengan panjang tetap.

Signifikansi blanko yang tertinggal

Tipe data CHAR dan VARCHAR menyimpan string hingga panjang n byte. Upaya untuk menyimpan string yang lebih panjang ke dalam kolom jenis ini menghasilkan kesalahan, kecuali karakter tambahan semuanya spasi (kosong), dalam hal ini string dipotong ke panjang maksimum. Jika string lebih pendek dari panjang maksimum, nilai CHAR dilapisi dengan blanko, tetapi nilai VARCHAR menyimpan string tanpa blanko.

Terakhir kosong dalam nilai CHAR selalu tidak signifikan secara semantik. Mereka diabaikan ketika Anda membandingkan dua nilai CHAR, tidak termasuk dalam perhitungan LENGTH, dan dihapus ketika Anda mengonversi nilai CHAR ke jenis string lain.

Spasi akhir dalam nilai VARCHAR dan CHAR diperlakukan sebagai tidak signifikan secara semantik ketika nilai dibandingkan.

Perhitungan panjang mengembalikan panjang string karakter VARCHAR dengan spasi akhir termasuk dalam panjang. Bagian akhir kosong tidak dihitung dalam panjang untuk string karakter dengan panjang tetap.