MySQL数据类型的详细讲解

在MySQL数据库中,每一条数据都有其数据类型,MySQL支持的数据类型主要分成三类:数字类型、字符串(或字符)类型、日期和时间类型。
一、数字类型
一般来说,数字类型可以分为整型和浮点型
1.1、整型数据类型

数据类型 取值范围 说明 单位
TINYINT 符号值:-127~127
无符号值:0~255
最小的整数 1字节
BIT 符号值:-127~127
无符号值:0~255
最小的整数 1字节
BOOL 符号值:-127~127
无符号值:0~255
最小的整数 1字节
SMALLINT 符号值:-215~215-1
无符号值:0~216
小型整数 2字节
MEDIUMINT 符号值:-223~223-1
无符号值:0~224
中型整数 3字节
INT 符号值:-231~231-1
无符号值:0~232
标准整数 4字节
BIGINT 符号值:-263~263-1
无符号值:0~264
大整数 8字节

其中:INT是INTEGER的简写。

1.2、浮点数据类型

数据类型 取值范围 说明 单位
FLOAT +(-)3.402823466E+38 单精度浮点数 8字节或4字节
DOUBLE +(-)1.7976931348623157E+308
+(-)2.2250738585072014E-308
双精度浮点数 8字节
DEC 可变 一般整数 自定义长度

其中:DEC是DECIMAL的简写。
创建表时,使用哪种数字类型,应遵循以下原则:
1、选择最小的可用类型,如果数值永远超不过127,最好使用TINYINT类型。
2、完全都是数值,最好使用整数类型。
3、浮点类型用于可能具有小数部分的数。

二、字符串类型
字符串类型可以分为三类:普通文本字符串类型(CHAR和VARCHAR)、可变类型(TEXT和BLOB)、特殊类型(SET和ENUM)。
2.1、普通文本字符串类型

类型 取值范围 说明
char(M) 0~255个字符 固定长度为M的字符串
char 0~255个字符 与char(M)类似
varchar(M) 0~255个字符 长度可变

2.2、可变类型(TEXT和BLOB)
其中,TEXT类型适合存储长文本;BLOB类型适合存储二进制数据,如声音、图形等。

类型 最大长度(字节数) 说明
TINYBLOB 28-1 小BLOB字段
TINYTEXT 28-1 小TEXT字段
BLOB 216-1 常规BLOB字段
TTEXT 216-1 常规TEXT字段
MEDIUMBLOB 224-1 中BLOB字段
MEDIUMTEXT 224-1 中TEXT字段
LONGBLOB 232-1 长BLOB字段
LONGTEXT 232-1 长TEXT字段

2.3、特殊类型(SET和ENUM)

类型 最大值 说明
Enum(“value1”,“value2”,…) 216 该类型的列只可以容纳所列值之一或为NULL
Set(“value1”,“value2”,…) 64 该类型的列只可以容纳一组值或为NULL

三、日期和时间类型
日期和时间类型包括:DATETIME、DATE、TIMESTAMP、TIME和YEAR。其中每种类型都有其取值范围,如赋予它一个不合法的值,将会被0代替。

类型 取值范围 说明
DATE 1000-01-01 ~ 9999-12-31 日期,格式为YYYY-MM-DD
TIME -838:59:59 ~ 835:59:59 时间,格式为HH-MM-SS
DATETIME 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 日期和时间,格式为YYYY-MM-DD HH-MM-SS
TIMESTAMP 1970-01-01 00:00:00 ~ 2037年的某个时间 时间戳,在处理报告时使用的显示格式取决于M的值
YEAR 1901~2155 年份可指定两位数字和四位数字的格式

猜你喜欢

转载自blog.csdn.net/weixin_43860260/article/details/85237656