在 MySQL 中儲存值的 BOOLEAN 還是 TINYINT?
MySQL 的 BOOLEAN 和 BOOL 都等同於 TINYINT(1)。每當你使用 BOOLEAN 和 BOOL 資料型別建立列時,MySQL 會隱式地將 BOOLEAN 和 BOOL 轉換為 TINYINT(1)。BOOLEAN 和 BOOL 等同於 TINYINT(1),因為它們是同義詞。
使用 BOOLEAN 資料型別建立表。用於建立表的查詢。
mysql> create table BooleanDemo -> ( -> IsOn BOOLEAN -> ); Query OK, 0 rows affected (0.58 sec)
現在檢查上述表的內部結構。查詢如下 −
mysql> show create table BooleanDemo;
輸出
+-------------+----------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+----------------------------------------------------------------------------------------------------------------------------------+ | BooleanDemo | CREATE TABLE `booleandemo` ( `IsOn` tinyint(1) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +-------------+----------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)
檢視上述樣本輸出,BOOLEAN 被轉換為 tinyint(1)。BOOL 資料型別的情況也是如此。用於建立表的查詢如下 −
mysql> create table BOOLDemo -> ( -> validUser BOOL -> ); Query OK, 0 rows affected (0.61 sec)
現在檢查表的內部結構。查詢如下 −
mysql> show create table BOOLDemo;
輸出
+----------+------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------+------------------------------------------------------------------------------------------------------------------------------------+ | BOOLDemo | CREATE TABLE `booldemo` (`validUser` tinyint(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +----------+------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP