MySQL 中 BIT 和 TINYINT 的區別是什麼?
BIT 可以用來儲存 1 位的值。它可以是 0 或 1。例如,我們不能使用 BIT 資料型別儲存 2。如果我們嘗試使用 BIT 資料型別插入 2,MySQL 會報錯。
TINYINT 可以用來儲存 8 位的值。我們可以儲存的最大值為 127。例如,我們不能使用 8 位值儲存 987。如果我們嘗試使用 TINYINT 資料型別插入 987,MySQL 會報錯。
讓我們使用 MySQL 8.0.12 版本進行演示。
檢查系統上安裝的版本。
mysql> select version();
以下是輸出結果。
+-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
BIT 型別
建立一個使用 BIT 型別的表。
mysql> create table BitDemo -> ( -> Id BIT -> ); Query OK, 0 rows affected (0.56 sec)
將記錄插入到表“BitDemo”中。
mysql> insert into BitDemo values(1); Query OK, 1 row affected (0.13 sec) mysql> insert into BitDemo values(0); Query OK, 1 row affected (0.33 sec)
每當我們在 Bit 中插入 2 時,都會出現錯誤。
mysql> insert into BitDemo values(2); ERROR 1406 (22001): Data too long for column 'Id' at row 1
TINYINT
建立一個使用 TINYINT 資料型別的表。
mysql> create table TinyIntDemo -> ( -> Id TINYINT -> ); Query OK, 0 rows affected (0.69 sec)
插入記錄。
mysql> insert into TinyIntDemo values(123); Query OK, 1 row affected (0.17 sec) mysql> insert into TinyIntDemo values(97); Query OK, 1 row affected (0.15 sec) mysql> insert into TinyIntDemo values(127); Query OK, 1 row affected (0.16 sec)
每當我們嘗試插入超過 127 的值時,都會出現錯誤。
mysql> insert into TinyIntDemo values(9876); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(987); ERROR 1264 (22003): Out of range value for column 'Id' at row mysql> insert into TinyIntDemo values(255); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(254); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(200); ERROR 1264 (22003): Out of range value for column 'Id' at row 1 mysql> insert into TinyIntDemo values(199); ERROR 1264 (22003): Out of range value for column 'Id' at row 1
我們可以儲存的最大值為 127。
要顯示所有有效的插入記錄,讓我們使用 SELECT 命令。
mysql> select *from TinyIntDemo;
以下是輸出結果。
+------+ | Id | +------+ | 123 | | 97 | | 127 | +------+ 3 rows in set (0.00 sec)
廣告