Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีตั้งค่า Character Set ของคอลัมน์ใน MySQL

การเปลี่ยน Character Set ระดับคอลัมน์

ใช้คำสั่ง ALTER TABLE ... MODIFY พร้อมระบุ CHARACTER SET

รูปแบบคำสั่ง

ALTER TABLE yourTableName 
MODIFY yourColumnName type CHARACTER SET charset_name;

ตัวอย่าง: สร้างตารางและตรวจสอบ charset เริ่มต้น

mysql> CREATE TABLE setCharsetDemo (
    -> FirstName VARCHAR(60)
    -> );
Query OK, 0 rows affected (2.09 sec)

mysql> SHOW CREATE TABLE setCharsetDemo;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                           |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| setCharsetDemo | CREATE TABLE `setcharsetdemo` (`FirstName` varchar(60) COLLATE utf8mb4_unicode_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

ค่าเริ่มต้นคือ utf8mb4 (รองรับ emoji และ unicode เต็มรูปแบบ)

เปลี่ยนเป็น utf8 (utf8mb3)

mysql> ALTER TABLE setCharsetDemo 
    -> MODIFY FirstName VARCHAR(60) CHARACTER SET utf8;
Query OK, 0 rows affected, 1 warning (2.81 sec)

ตรวจสอบหลังเปลี่ยน

mysql> SHOW CREATE TABLE setCharsetDemo;
+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                         |
+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| setCharsetDemo | CREATE TABLE `setcharsetdemo` (`FirstName` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

เห็นว่าคอลัมน์ FirstName ใช้ CHARACTER SET utf8 แล้ว ส่วนตารางยังคงเป็น utf8mb4

Character Sets ยอดนิยม:

  • utf8mb4 - Unicode เต็มรูปแบบ (แนะนำ)
  • utf8 / utf8mb3 - Unicode บางส่วน (ไม่รองรับ emoji บางตัว)
  • latin1 - Western European (เก่า)
  • tis620 - ภาษาไทย (เก่า ไม่แนะนำ)

คำแนะนำ: ใหม่ๆ ควรใช้ utf8mb4 เสมอ เพื่อรองรับภาษาทุกภาษาและ emoji