Anda dapat menentukan set karakter dan susunan di berbagai level di MariaDB. Anda dapat menentukannya di tingkat koneksi, tingkat server, tingkat database, tingkat tabel, dan bahkan tingkat kolom.
Anda juga dapat menentukan susunan dalam kueri Anda sehingga menimpa susunan apa pun yang telah ditentukan sebelumnya pada tingkat yang disebutkan di atas.
Untuk mengatur set karakter dan susunan pada tingkat tabel, gunakan CREATE TABLE
pernyataan atau ALTER TABLE
pernyataan (bergantung pada apakah Anda membuat tabel atau memodifikasinya).
Saat Membuat Tabel
Berikut contoh pengaturan collation dan character set saat membuat tabel:
CREATE TABLE Products (
ProductId CHAR(10),
ProductName VARCHAR(255) NOT NULL,
PRIMARY KEY (ProductId))
CHARACTER SET latin1
COLLATE latin1_general_ci;
Itu membuat tabel bernama Products
dengan latin1
set karakter, dan kumpulan latin1_general_ci
.
Mengubah Tabel yang Ada
Berikut contoh perubahan collation dan character set pada tabel yang sudah ada:
ALTER TABLE Products
CONVERT TO CHARACTER SET utf8 COLLATE utf8_spanish_ci;
Sekarang menggunakan susunan dan set karakter baru.
Anda juga dapat menghilangkan CONVERT TO
bagian:
ALTER TABLE Products
CHARACTER SET utf8
COLLATE utf8_spanish_ci;
Kolasi Harus Valid untuk Kumpulan Karakter
Saat mengatur susunan dan kumpulan karakter, Anda perlu memastikan bahwa susunan tersebut valid untuk kumpulan karakter yang dipilih dan sebaliknya. Jika tidak, kesalahan akan dikembalikan.
Berikut ini contoh penetapan menggunakan susunan yang tidak valid untuk kumpulan karakter yang ditentukan:
ALTER TABLE Products
CHARACTER SET latin1
COLLATE utf8_spanish_ci;
Hasil:
ERROR 1253 (42000): COLLATION 'utf8_spanish_ci' is not valid for CHARACTER SET 'latin1'
Ini memberitahu kita bahwa susunan yang kita pilih tidak valid untuk set karakter tertentu yang kita pilih.
Lihat Daftar Lengkap Kumpulan yang Didukung oleh MariaDB atau Daftar Lengkap Kumpulan Karakter yang Didukung oleh MariaDB untuk daftar kumpulan yang cocok dan kumpulan karakter.
Menentukan Hanya Kumpulan atau Kumpulan Karakter
Tidak apa-apa untuk menentukan hanya susunan atau kumpulan karakter saja (atau tidak keduanya):
- Jika hanya kumpulan karakter yang disediakan, susunan default untuk kumpulan karakter tersebut akan digunakan.
- Jika hanya kumpulan yang disediakan, kumpulan karakter terkait akan digunakan.
- Jika tidak ada susunan atau kumpulan karakter yang disediakan, tabel default akan digunakan.
Mengonversi ke Kumpulan Karakter yang Membutuhkan Lebih Banyak Byte
Untuk VARCHAR
atau TEXT
kolom, CONVERT TO CHARACTER SET
ubah tipe data jika diperlukan untuk memastikan bahwa kolom baru cukup panjang untuk menyimpan karakter sebanyak kolom aslinya.
Misalnya, sebuah TEXT
ascii kolom membutuhkan satu byte per karakter, sehingga kolom dapat menampung hingga 65.535 karakter. Jika kolom dikonversi ke utf8, hingga 3 byte dapat diperlukan untuk setiap karakter, sehingga kolom akan dikonversi menjadi MEDIUMTEXT
(yang memiliki panjang maksimum 16.777.215) sehingga dapat menampung jumlah karakter yang sama.
Jika Anda tidak ingin perubahan tipe data seperti itu terjadi, gunakan MODIFY
pada kolom individu sebagai gantinya.
Misalnya:
ALTER TABLE Products
MODIFY ProductName VARCHAR(255)
CHARACTER SET utf8;
Mengonversi ke Biner
CONVERT TO CHARACTER SET binary
akan mengonversi CHAR
, VARCHAR
dan TEXT
kolom ke BINARY
, VARBINARY
dan BLOB
masing-masing.
Setelah ini selesai, kolom tersebut tidak akan lagi memiliki kumpulan karakter. Selain itu, mereka tidak akan lagi terpengaruh oleh CONVERT TO CHARACTER SET
di masa mendatang pernyataan.
Memeriksa Kumpulan dan Kumpulan Karakter di MariaDB
Ada berbagai cara untuk memeriksa susunan dan kumpulan karakter di MariaDB, tergantung pada level yang Anda periksa (server, database, tabel, kolom, koneksi, dll). Lihat Show the Collation di MariaDB untuk contoh.