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)

更新於: 2019-07-30

723 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告