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


Boolean 和 tinyint(1) 之间最基本的区别仅在于命名约定。如果我们说需要 true 或 false 值,那么 Boolean 会首先出现在我们的脑海中,而不是 tinyint(1)。

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

以下是一个示例。

使用 Boolean 数据类型创建表。

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;

以下是显示 Boolean 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)

注意 - 唯一的区别在于语义。如果我们谈论的是 true 或 false,那么很明显数据类型应该是 boolean。但如果我们谈论的是 0 或 1,那么数据类型应该是 tinyint(1)。

更新于: 2019-07-30

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告