Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL phản ứng như thế nào khi chúng ta chỉ định thuộc tính nhị phân CHARACTER SET cho kiểu dữ liệu chuỗi ký tự?

Khi chỉ định thuộc tính nhị phân CHARACTER SET cho kiểu dữ liệu chuỗi ký tự, MySQL tạo cột đó làm kiểu chuỗi nhị phân tiếp theo của nó. Các chuyển đổi cho các kiểu dữ liệu CHAR, VARCHAR và BLOB diễn ra như sau -

  • CHAR sẽ trở thành BINARY
  • VARCHAR sẽ trở thành VARBINARY
  • TEXT sẽ trở thành BLOB

Kiểu chuyển đổi trên không xảy ra đối với kiểu dữ liệu ENUM và SET và cả hai đều được tạo như được khai báo trong khi tạo bảng.

Ví dụ

Trong ví dụ dưới đây, chúng tôi đã tạo một bảng có tên là 'EMP' với bốn cột tất cả được chỉ định dưới dạng nhị phân CHARACTER SET như sau -

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)

Nhưng bây giờ khi kiểm tra trạng thái của bảng, với sự trợ giúp của truy vấn bên dưới, chúng ta có thể thấy rằng MySQL đã thay đổi kiểu dữ liệu theo chuỗi nhị phân tiếp theo của nó.

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)