MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Atur Set Karakter dan Susunan Kolom di MariaDB

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HA untuk MySQL dan MariaDB - Membandingkan Replikasi Master-Master dengan Galera Cluster

  2. Bagaimana PI() Bekerja di MariaDB

  3. MariaDB JSON_MERGE_PATCH() Dijelaskan

  4. MariaDB LAST_INSERT_ID() Dijelaskan

  5. Koneksi HAProxy vs Koneksi MySQL - Yang Harus Anda Ketahui