MySQL中的Boolean和tinyint(1)有什么区别?

布尔值和tinyint(1)之间的基本区别仅在于命名约定。如果我们说需要true或false值,那么我们就想到Boolean而不是tinyint(1)。

这些数据类型是同义词。由我们决定要使用哪种数据类型-值可以是1和0或true和false。

以下是一个示例。

创建具有布尔数据类型的表。

mysql> create table BooleanDemo
   -> (
   -> Light Boolean
   -> );

将记录插入表中。

mysql> insert into BooleanDemo values(true);

显示所有记录。

mysql> select *from BooleanDemo;

以下是显示布尔值TRUE的输出。

+-------+
| Light |
+-------+
|     1 |
+-------+
1 row in set (0.00 sec)

创建一个带有tinyint(1)数据类型的表。

mysql> create table tinyint1Demo
   -> (
   -> Light tinyint(1)
   -> );

将记录插入表中。

mysql> insert into tinyint1Demo values(1);

显示所有记录。

mysql> select *from tinyint1Demo;

这是输出。

+-------+
| Light |
+-------+
|     1 |
+-------+
1 row in set (0.00 sec)

注意-唯一的基本区别是语义。如果我们谈论的是对还是错,那么很显然数据类型应该是布尔值。但是,如果我们谈论的是0或1,那么数据类型应该是tinyint(1)。