寫在前面:博主是一只經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。
- 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
- 有任何想要討論和學習的問題可聯繫我:[email protected]。
- 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。
MySQL 5.7 - 常見數據類型
本文關鍵字:MySQL、數據類型、文本類型、數字類型、日期類型
文章目錄
數據類型是數據庫的一個重要組成部分,在MySQL數據庫中可將數據類型分爲三大類:Text類型(文本類型)、Number類型(數字類型)、Date類型(日期類型)。
一、Text類型
Text類型爲本文類型,也就是我們在編程中常說的字符串,同時由於可以進行序列化、反序列化等等的操作,我們甚至於可以直接將文件轉換後存入數據庫(但通常我們不會這樣做)。
1. CHAR
- 最大長度:255
- 內容限制:字母、數字及特殊字母,正確設置編碼後可以存入中文等字符
- 特點:長度固定,佔用空間較大,效率稍高
2. VARCHAR
- 最大長度:255
- 內容限制:字母、數字及特殊字母,正確設置編碼後可以存入中文等字符
- 特點:長度可變,需要同時記錄數據本身和佔用的空間大小,可適度節省磁盤空間,效率稍低
3. TINYTEXT
- 最大長度:255
- 內容限制:字母、數字及特殊字母,正確設置編碼後可以存入中文等字符
- 特點:存儲方式上有所不同,不會和行數據存在一起
4. TEXT
- 最大長度:65,535
- 內容限制:字母、數字及特殊字母,正確設置編碼後可以存入中文等字符
- 其他相似類型
- MEDIUMTEXT:最大長度爲16,777,215
- LONGTEXT:最大長度爲4,294,967,295
5. BLOB
- 最多存放:65,535字節
- 內容限制:Binary Large OBjects(二進制長對象)
- 其他相似類型
- MEDIUMBLOB:最多存放16,777,215字節
- LONGBLOB:最多存放4,294,967,295字節
6. ENUM
- 最大個數:65,535
- 內容限制:字符串類型,存儲的數據只能是在ENUM中已羅列出的值,或爲NULL
7. SET
- 最大個數:64
- 內容限制:字符串類型,存儲的數據只能是在SET中已羅列出的值
- 特點:可以存儲進多個SET中已聲明的元素,但是不會重複存入相同的元素
二、Number類型
Number類型爲數字類型,主要用於存儲整數和小數,長度部分代表數據的最大位數,而不是最大值。
1. TINYINT
- 數據範圍
- 常規:-128~127
- 無符號:0~255
- 內容限制:整數
2. INT
- 數據範圍
- 常規:-2,147,483,648~2,147,483,647
- 無符號:0~4,294,967,295
- 內容限制:整數
- 相似類型
- SMALLINT:-32768~32767 (常規),0~65535(無符號)
- MEDIUMINT:-8,388,6088,388,607(常規),016,777,215(無符號)
3. BIGINT
- 數據範圍
- 常規:-9,223,372,036,854,775,808~9,223,372,036,854,775,807
- 無符號:0~18,446,744,073,709,551,615
- 內容限制:整數
4. FLOAT
- 數據範圍
- 總位數:0~23
- 小數位:0~4
- 內容限制:小數或整數
5. DOUBLE
- 數據範圍
- 總位數:0~53
- 小數位:0~8
- 內容限制:小數或整數
6. DECIMAL
- 數據範圍
- 總位數:0~65
- 小數位:0~30
- 內容限制:小數或整數
三、Date類型
Date類型爲日期類型,用於記錄時間格式的數據。通常會以日期格式的字符串、時間戳或部分日期信息的形式來進行記錄。
1. DATE
- 顯示格式:YYYY-MM-DD
- 起止範圍:‘1000-01-01’ 到 ‘9999-12-31’
2. DATETIME
- 顯示格式:YYYY-MM-DD hh:mm:ss
- 起止範圍:‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
3. TIMESTAMP
- 顯示格式:時間戳(長整形)
- 起止範圍:‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-19 03:14:07’ UTC
4. TIME
- 顯示格式:hh:mm:ss 或 hhh:mm:ss
- 起止範圍:’-838:59:59’ 到 ‘838:59:59’
5. YEAR
- 顯示格式:YYYY
- 起止範圍:1901 到 2155,或0000
- 備註:一般使用0,00,0000代表2000年,在嚴格模式下,0000是一個非法的值