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

MySQL ตอบสนองอย่างไรเมื่อระบุ CHARACTER SET binary สำหรับชนิดข้อมูลสตริงตัวอักษร

เมื่อระบุแอตทริบิวต์ CHARACTER SET binary สำหรับชนิดข้อมูลสตริงตัวอักษร MySQL จะสร้างคอลัมน์นั้นเป็นชนิดสตริงไบนารี (binary string type) ต่อไปนี้ การแปลงสำหรับ CHAR, VARCHAR และ TEXT ดังนี้:

  • CHAR กลายเป็น BINARY
  • VARCHAR กลายเป็น VARBINARY
  • TEXT กลายเป็น BLOB

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

ตัวอย่าง

สร้างตาราง EMP 4 คอลัมน์ ระบุ CHARACTER SET binary ทั้งหมด:

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 เปลี่ยนชนิดข้อมูลตาม binary string type:

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)