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

MySQL ตอบสนองอย่างไรเมื่อเราระบุแอตทริบิวต์ไบนารีของ CHARACTER SET สำหรับประเภทข้อมูลสตริงอักขระ


ในการระบุแอตทริบิวต์ไบนารีของ CHARACTER SET สำหรับประเภทข้อมูลสตริงอักขระ MySQL จะสร้างคอลัมน์นั้นเป็นประเภทสตริงไบนารีที่ตามมา การแปลงประเภทข้อมูล CHAR, VARCHAR และ BLOB เกิดขึ้นดังนี้ -

  • CHAR จะกลายเป็นไบนารี
  • VARCHAR จะกลายเป็น VARBINARY
  • TEXT จะกลายเป็น BLOB

การแปลงประเภทข้างต้นจะไม่เกิดขึ้นสำหรับประเภทข้อมูล ENUM และ SET และทั้งคู่จะถูกสร้างขึ้นตามที่ประกาศไว้ขณะสร้างตาราง

ตัวอย่าง

ในตัวอย่างด้านล่าง เราได้สร้างตารางชื่อ 'EMP' โดยมีสี่คอลัมน์ทั้งหมดที่ระบุเป็นไบนารีของ CHARACTER SET ดังนี้ -

mysql> Create table Emp(Name varchar(10) CHARACTER SET binary, Address CHAR(10)CHARACTER SET binary, Designation TEXT CHARACTER SET binary, Field ENUM('ENG','SS') CHARACTER SET binary);
Query OK, 0 rows affected (0.16 sec)

แต่ตอนนี้ ในการตรวจสอบสถานะของตาราง ด้วยความช่วยเหลือของแบบสอบถามด้านล่าง เราจะเห็นว่า MySQL ได้เปลี่ยนประเภทข้อมูลตามสตริงไบนารีที่ตามมา

mysql> Show Create Table EMP\G
*************************** 1. row ***************************
      Table: EMP
Create Table: CREATE TABLE `emp` (
   `Name` varbinary(10) DEFAULT NULL,
   `Address` binary(10) DEFAULT NULL,
   `Designation` blob,
   `Field` enum('ENG','SS') CHARACTER SET binary DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)