BIT 和 TINYINT 在 MySQL 的区别是什么?
BIT 用于存储 1 位的值。它可以是 0 或 1。我们不能用 BIT 数据类型存储 2 这样的值。如果我们试图使用 BIT 数据类型插入 2,MySQL 将会引发错误。
TINYINT 用于存储 8 位的值。最大值为 127。我们不能使用 8 位值存储超过 987 这样的值。如果我们试图使用 TINYINT 数据类型插入 987,MySQL 将会引发错误。
让我们通过 MySQL 版本 8.0.12 进行操作。
要检查系统安装的 MySQL 版本,请使用以下命令。
mysql> select version();
下面是输出结果。
+-----------+
| version() |
+-----------+
| 8.0.12 |
+-----------+
1 row in set (0.00 sec)
阅读更多:MySQL 教程
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)
当我们尝试将 2 插入 Bit 中时,将会出现错误。
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)
极客教程