MySQL數據庫產品提供了二種比較特殊的數據類型: SET(集合類型)、ENUM(枚舉類型)、BIT(布爾類型),而多數開發人員,甚至DBA從業者對如何使用這三種數據類型的應用場景並不十分清晰,爲此結合TINYINT數據類型對比,Amy接下來就幫大家一起弄清楚。
(一)數據類型特點
(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值要求)。
以上就是第一節的內容,下一節要給大家分享數據類型測試,感興趣的我們明天不見不散~