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