【MySQL數據類型測試】ENUM、SET、BOOL/BOOLEAN、TINYINT特性介紹(第一節)

MySQL數據庫產品提供了二種比較特殊的數據類型: SET(集合類型)、ENUM(枚舉類型)、BIT(布爾類型),而多數開發人員,甚至DBA從業者對如何使用這三種數據類型的應用場景並不十分清晰,爲此結合TINYINT數據類型對比,Amy接下來就幫大家一起弄清楚。
(一)數據類型特點
(1).數據類型的存儲空間佔用信息
英文名稱	中文名稱	分類	存儲範圍	存儲空間ENUM	枚舉類型	字符類型	1~65535個元數據	1個字節 或 2個字節SET	集合類型		1~64個元數據	1,2,3,4 或 8個字節BOOL/BOOLEAN	布爾類型	數值類型	-128~127 或 0~255	1個字節TINYINT	微整型		-128~127 或 0~255	1個字節

(2).數據類型的語法定義
四種數據類型的定義語法如圖1-1所示:
在這裏插入圖片描述圖 1-1
四種數據類型字段的值寫入與查閱如圖1-2所示:
在這裏插入圖片描述圖1-2
(3).數據類型的其他信息

a)ENUM
枚舉類型ENUM的元素,必須爲字符類型的值,也即不管是字符串還是數字,都必須也即用一對單引號括起來,且每個元素值必須爲固定的值,不能使用變量或函數等,參考示例:ENUM(‘DBA’,‘SA’,‘Coding Engineer’,‘JavaScript’,‘other’)。

b)SET
集合類型SET的元素,必須爲字符類型的值,也即不管是字符串還是數字,都必須用一
對單引號括起來,參考示例:SET(‘DBA’,‘SA’,‘Coding Engineer’,‘JavaScript’,‘other’)。

c)BOOL/BOOLEAN
布爾類型BOOL/BOOLEAN的元素,必須爲整型或者值爲(TRUE,FALSE),其實
BOOL/BOOLEAN等同於TINYINT(1),只是使用其中低位存儲值,其他存儲位都置0的做法,而且0爲FALSE,非0值則位TRUE,後續講解的數據類型測試會佐證上述信息;
備註:
實際使用過程中,我們會發現執行表創建之後,發現BOOL/BOOLEAN字段的類型默認被轉換成TINYINT(1)。

d)TINYINT
整型一共有五種:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其中TINYINT屬於整型類型中最小的,存儲的值必須爲整型的數值,否則會被默認轉換或報錯(注:取決於MySQL運行時設置的SQL_MODE值要求)。

以上就是第一節的內容,下一節要給大家分享數據類型測試,感興趣的我們明天不見不散~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章