1. 程式人生 > >數據庫MySQL/mariadb知識點——數據類型

數據庫MySQL/mariadb知識點——數據類型

src 整型 bin 數值 med tex inf 避免 char

技術分享圖片

數據類型

  所謂的列類型,其實就是指數據類型,即對數據進行統一的分類,從系統的角度出發是為了能夠使用統一的方式進行管理,更好的利用有限的空間。

  在 SQL 中,將數據類型分成了三大類,分別為:數值型、字符串型和日期時間型。

技術分享圖片

選擇正確的數據類型對於獲得高性能至關重要,三大原則:

  • 更小的通常更好,盡量使用可正確存儲數據的最小數據類型
  • 簡單就好,簡單數據類型的操作通常需要更少的CPU周期
  • 盡量避免NULL,包含為NULL的列,對MySQL更難優化

1、數值型

  • 精確數值

    • INT

      • TINYINT 微整型 1

      • SMALLINT 小整型 2

      • MEDIUMINT 中整型 3

      • INT 整型 4

      • BIGINT 大整型 8

    • DECIMAL 精確定點型

  • 近似數值

    • FLOAT 單精度浮點型 4

    • DOUBLE 雙精度浮點型 8

    • REAL

    • BIT

2、字符型

  • 定長

    • CHAR(不區分大小寫)255

    • BINARY(區分大小寫)

  • 變長

    • VARCHAR(不區分大小寫)65,535

    • VARBINNARY(區分大小寫)

  • TEXT(不區分大小寫)

    • TINYTEXT 255

    • TEXT 65,535

    • MEDIUMTEXT 16,777,215

    • LONGTEXT 4,294,967,295

  • BLOB(區分大小寫)

    • TINYBLOB 微二進制大對象 255

    • BLOB 二進制大對象 64K

    • MEDIUMBLOB 中二進制大對象 16M

    • LONGBLOB 長二進制大對象 4G

  • ENUM 枚舉 65535種變化

  • SET 集合 1-64個字符串,可以隨意組合

3、日期時間型

  • DATE 3

  • TIME 3

  • DATETIME 8

  • TIMESTAMP 4

  • YEAR{2|4} 1

4、布爾型

  • BOOL,BOOLEAN:布爾型,是TINYINT(1)的同義詞。zero值被視為假。非zero值視為真。

詳情請參考官方文檔:https://dev.mysql.com/doc/refman/5.5/en/data-types.html

數據庫MySQL/mariadb知識點——數據類型