MySQL/mariadb知识点——数据类型

数据类型

  所谓的列类型,其实就是指数据类型,即对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间。

  在 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

原文地址:https://www.cnblogs.com/Gmiaomiao/p/9196197.html