MYSQL Data types

資料型態 :


數字型態 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 留言