BIT可用于存储1位的值。它可以是0或1。例如,我们不能存储2个数据类型为BIT的数据。如果我们尝试使用BIT数据类型插入2,则MySQL会引发错误。
TINYINT可用于存储8位值。我们可以存储的最大值是127。我们不能存储,例如987的8位值。如果我们尝试插入带有TINYINT数据类型的987,MySQL会引发错误。
让我们通过MySQL 8.0.12版本进行工作。
检查系统上安装的版本。
mysql> select version();
以下是输出。
+-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
创建具有BIT类型的表。
mysql> create table BitDemo -> ( -> Id BIT -> );
将记录插入表“ BitDemo”。
mysql> insert into BitDemo values(1); mysql> insert into BitDemo values(0);
每当在Bit中插入2时,都会出现错误。
mysql> insert into BitDemo values(2); ERROR 1406 (22001): Data too long for column 'Id' at row 1
创建具有TINYINT数据类型的表。
mysql> create table TinyIntDemo -> ( -> Id TINYINT -> );
插入记录。
mysql> insert into TinyIntDemo values(123); mysql> insert into TinyIntDemo values(97); mysql> insert into TinyIntDemo values(127);
每当我们尝试插入超过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)