當我們為字元型資料型別指定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年6月20日

168 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.