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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告