MySQL 中經常使用的字段類型總結

整型

MySQL 能夠爲整數類型指定寬度,例如 INT(11),對大多數應用這是沒有意義的:它不會限制值的合法範圍,只是規定了 MySQL 的一些交互工具(例如 MySQL 命令行客戶端)用來顯示字符的個數。對於存儲和計算來講,INT(1)INT(20) 是相同的。只有使用 ZEROFILL 屬性時,指定長度纔有意義(按照指定長度進行零的填充)。html

因此,在不使用 ZEROFILL 時,不須要指定整形的長度。工具

  • TINYINT
    空間佔用爲 1 byte ( 8 bit ) 。使用無符號類型(UNSIGNED)時,8 位都是 1 時所表示的十進制數爲 255,因此其可存儲的範圍爲 0 ~ 255。使用有符號類型時,範圍爲 -128 ~ 127
  • SMALLINT
    空間佔用爲 2 byte,可存儲的無符號範圍爲 0 ~ 65535,有符號範圍爲 -32768 ~ 32767
  • MEDIUMINT
    空間佔用爲 3 byte,可存儲的無符號範圍爲 0 ~ 16777215,有符號範圍爲 -8388608 ~ 8388607
  • INT
    空間佔用爲 4 byte,可存儲的無符號範圍爲 0 ~ 4294967295,有符號範圍爲 -2147483648 ~ 2147483647
  • BIGINT
    空間佔用爲 8 byte,可存儲的無符號範圍爲 0 ~ 18446744073709551615,有符號範圍爲 -9223372036854775808 ~ 9223372036854775807

參考連接:MySQL 整型長度的含義編碼

文本

  • CHAR命令行

    • 定長字符串,設定該類型字段時須要指定長度,存儲時會向右邊補充空格到指定長度。
    • 該類型所指定的長度是指字符的個數(不管中文/英文/中文標點/英文標點,只要是一個符號就會佔用一個個數),而不是字符串所佔的字節數。 例如,CHAR(6) 類型的字段用於存儲字符串 「Hello!」 和 「你好,世界!」 都是能夠的。
    • 該類型可設定的最大長度255 個字符。
  • VARCHARcode

    • 變長字符串,設定該類型字段時一樣須要指定長度,長度一樣是指最多可存儲的字符個數。
    • 可設定的最大有效長度取決於行長度限制,詳見:MySQL中varchar最大長度是多少
  • TINYTEXThtm

    • 最多可存儲 255 byte 的文本內容,也就是說在 UTF8 編碼下能夠存儲 255 個英文字母/英文符號,而漢字/中文符號最多隻能存儲 85255/3)個。如下類型一樣可推算。
  • TEXTblog

    • 最多可存儲 65535 byte 約等於 65KB 的文本內容。
  • MEDIUMTEXT字符串

    • 最多可存儲 16777215 byte 約等於 16MB 的文本內容。
  • LONGTEXTget

    • 最多可存儲 4294967295 byte 約等於 4GB 的文本內容。

日期與時間

  • TIMESTAMPit

    • 時間戳,範圍從 1970-01-01 00:00:01 UTC2038-01-09 03:14:07 UTCUTC 轉換成東八區時間須要 +08:00),存儲爲自紀元(1970-01-01 00:00:00 UTC)起的秒數。
    • 雖然內部存儲的是秒數,可是在讀寫該類型字段時都是以日期時間字符串的形式進行的,例如,查詢到的實際是一個字符串 '2019-06-11 23:18:45',執行 INSERTUPDATE 操做時,也是須要傳入一個日期時間字符串。
    • 時間戳類型也能夠指定長度,用以表示秒級如下的精度,最高可設爲 6。例如,當精度爲 5 時查詢或傳入的字符串形式爲 '2019-06-12 13:22:21.35927'

JSON

用於存儲 JSON 文本,不能夠指定長度,不能夠設定默認值。

相關文章
相關標籤/搜索