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 kolom, gunakan CREATE TABLE
pernyataan atau ALTER TABLE
pernyataan (bergantung pada apakah Anda membuat tabel atau memodifikasinya).
Saat Membuat Tabel
Berikut adalah contoh pengaturan collation dan character set pada kolom saat membuat tabel:
CREATE TABLE Events (
EventId INT AUTO_INCREMENT NOT NULL,
EventName VARCHAR(255)
CHARACTER SET utf8
COLLATE utf8_spanish_ci,
PRIMARY KEY (EventId)
);
Di sini, saya menentukan set karakter dan susunan di tingkat kolom. Anda juga dapat mengaturnya di tingkat tabel.
Mengubah Kolom yang Ada
Berikut contoh perubahan collation dan character set pada kolom yang ada:
ALTER TABLE Events
MODIFY EventName VARCHAR(255)
CHARACTER SET latin5 COLLATE latin5_turkish_ci;
EventName
kolom sekarang menggunakan susunan dan set karakter baru.
Periksa Kolom
Ada beberapa cara untuk memeriksa susunan dan kumpulan karakter kolom. Ini salah satunya:
SELECT
column_name,
character_set_name,
collation_name
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';
Hasil:
+-------------+--------------------+-------------------+ | column_name | character_set_name | collation_name | +-------------+--------------------+-------------------+ | EventName | latin5 | latin5_turkish_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 Events
MODIFY EventName VARCHAR(255)
CHARACTER SET utf16 COLLATE latin5_turkish_ci;
Hasil:
ERROR 1253 (42000): COLLATION 'latin5_turkish_ci' is not valid for CHARACTER SET 'utf16'
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
Anda juga dapat mengonversi set karakter di level tabel. Saat mengonversi kumpulan karakter di tingkat tabel, ada kemungkinan MariaDB dapat secara otomatis mengonversi tipe data ke tipe data yang lebih mampu menangani kumpulan karakter baru.
Namun, ketika kita menggunakan MODIFY
pada masing-masing kolom dan secara eksplisit menentukan tipe data (seperti yang kami lakukan pada contoh sebelumnya), kami mencegah MariaDB mengonversi tipe data.
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.