MySQL 中的 Boolean 和 tinyint(1) 有什么区别?
mysqlmysqli database
Boolean 和 tinyint(1) 之间的基本区别仅在于命名约定。如果我们说我们需要真或假值,那么我们会想到 Boolean,而不是 tinyint(1)。
这些数据类型是同义词。我们想使用哪种数据类型取决于我们 - 值可以是 1 和 0 或真和假。
以下是一个例子。
创建具有布尔数据类型的表。
mysql> create table BooleanDemo -> ( -> Light Boolean -> ); Query OK, 0 rows affected (0.52 sec)
将记录插入表中。
mysql> insert into BooleanDemo values(true); Query OK, 1 row affected (0.12 sec)
显示所有记录。
mysql> select *from BooleanDemo;
以下是显示布尔值 TRUE 的输出。
+-------+ | Light | +-------+ | 1 | +-------+ 1 row in set (0.00 sec)
创建一个具有 tinyint(1) 数据类型的表。
mysql> create table tinyint1Demo -> ( -> Light tinyint(1) -> ); Query OK, 0 rows affected (0.58 sec)
将记录插入表中。
mysql> insert into tinyint1Demo values(1); Query OK, 1 row affected (0.12 sec)
显示所有记录。
mysql> select *from tinyint1Demo;
这是输出。
+-------+ | Light | +-------+ | 1 | +-------+ 1 row in set (0.00 sec)
注意 − 唯一的基本区别在于语义。如果我们谈论的是真或假,那么显然数据类型应该是布尔值。但如果我们谈论的是 0 或 1,那么数据类型应该是 tinyint(1)。