當我們為字元型資料型別指定 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)

更新於:2020-06-20

168 次瀏覽

開啟您職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.