當我們為字元型資料型別指定 CHARACTER SET binary 屬性時,MySQL 如何處理?
當為字元型資料型別指定 CHARACTER SET binary 屬性時,MySQL 會將該列建立為它的後續二進位制字串型別。CHAR、VARCHAR 和 BLOB 資料型別的轉換如下 -
- CHAR 將變為 BINARY
- VARCHAR 將變為 VARBINARY
- TEXT 將變為 BLOB
上述轉換不會發生在 ENUM 和 SET 資料型別上,它們在建立表時會按照宣告的內容建立。
示例
在下面的示例中,我們建立了一個名為 'EMP' 的表,其中包含四列,全部指定為 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 根據其後續二進位制字串更改了資料型別。
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)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP