數字型態 Numeric Type
- Tinyint (signed -128 to 127, unsigned 0 to 255) 4 digits
- Small (signed -32768 to 32767, unsigned 0 to 65535) 5 digits
- Mediumint (signed -8388608 to 8388607, unsigned 0 to 16777215) 9 digits
- Int (signed -2147483648 to 2147483647, unsigned 0 to 4294967295) 11 digits
- Bigint (signed -9223372036854775808 to 9223372036854775807, unsigned 0 to 18446744073709551615) 20 digits
- Float ~ default to 10,2, where 2 is the number of decimals and 10 is the total number of digits (including decimals)
- Double ~ default to 16,4, where 4 is the number of decimals
- Decimal
「FLOAT」和「DOUBLE」型態的欄位可以用來儲存包含小數的數值,儲存空間分別是4和8個位元組,它們是一種佔用儲存空間比較小,執行運算比較快的型態。不過因為它們是使用「近似值」來儲存你的數值,所以如果你需要儲存完全精準的數值,就不能使用這兩種型態。「DECIMAL」型態就可以用來儲存完全精準的數值,儲存在這個型態中的數值,不論是查詢或是運算,都不會有任何誤差,不過「DECIMAL」型態佔用的儲存空間就比「FLOAT」和「DOUBLE」型態大。
日期時間 Date and Time Type
- Date
- Time
- Year
- Datetime
- Timestamp
日期(DATE)型態欄位可以儲存年、月、日的資料,範圍從「1000-01-01」到「9999-12-31」,你的日期資料不可以超過「9999-12-31」,可是你可以儲存「1000-01-01」以前的日期,不過MySQL建議你最好不要這麼作,不然可能會造成一些奇怪的問題。
時間(TIME)型態可以儲存時、分、秒的資料,範圍從「-838:59:59」到「838:59:59」。這個儲存時間資料的範圍可能會跟你想的不太一樣。一般來說,時間資料指的是從「00:00:00」到「23:59:59」,也就是一天的時間。MySQL的時間型態欄位可以讓你儲存類似「經過的時間」這樣的資料
日期與時間(DATETIME)型態可以儲存完整的年、月、日與時、分、秒資料,範圍從「1000-01-01 00:00:00」到「9999-12-31 23:59:59」。在表示一個日期與時間資料的時候,日期與時間之間,至少要使用一個空白隔開。時間部份的時、分、秒都可以省略,省略的部份,MySQL都會幫你設定為「0」
「TIMESTAMP」型態的格式與「DATETIME」一樣,都包含完整的年、月、日與時、分、秒資料,不過它使用的儲存空間只有4bytes,是「DATETIME」型態的一半。 「TIMESTAMP」也是MySQL日期與時間型態中具有「時區」特性的型態。它可以儲存從「1970-01-01 00:00:00」到目前經過的秒數。這個起始日期與時間使用「Coordinated Universal Time、UTC」世界標準時間為儲存資料的依據,它與「Greenwich Mean Time、GMT」格林威治標準時間是一樣的。
字串型態 String Type
- Char
- Varchar
- TinytextText
- Mediumtext
- Longtext
二進位型態 Binary Type
- Binary
- Varbinary
- Tinyblob
- Blob
- Mediumblob
- Longblob
參考資料
https://dev.mysql.com/doc/refman/5.7/en/data-types.html
http://www.codedata.com.tw/database/mysql-tutorial-8-storage-engine-datatype/
0 留言