前言
数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型!
MySQL中的数据类型
整数型
类型 | 占用字节 | 有符号范围 | 无符号范围 | 描述 |
---|---|---|---|---|
TINYINT | 1字节 | -128~127 | 0~255 | 很小整数 |
SMALLINT | 2字节 | -32768~32767 | 0~65535 | 小整数 |
MEDIUMINT | 3字节 | -8388608~8388607 | 0~16777215 | 中等整数 |
INT | 4字节 | -2147483648~2147483647 | 0~4294967295 | 标准整数 |
BIGINT | 8字节 | -9223372036854775808~9223372036854775807 | 0~18446744073709551615 | 大整数 |
小数型
类型 | 占用字节 | 取值范围 | 描述 |
---|---|---|---|
FLOAT | 4字节 | ±1.175494351E-38 ~ ±3.402823466E+38 | 单精度浮点 |
DOUBLE | 8字节 | ±2.2250738585072014E-308 ~ ±1.7976931348623157E+308 | 双精度浮点 |
DECIMAL(M,D) | M+2字节 | M类型允许最多65个数字,D允许最大30且小于M | 精确,M:总位数,D:小数位数 |
字符型
类型 | 占用字节 | 最大范围 | 描述 |
---|---|---|---|
CHAR(M) | M | L或M或M×W | 定长字符串,M 0~255 |
VARCHAR(M) | M | L+1或 L+2 | 变长字符串,L<=M且M[0,65535] |
TINYTEXT | 2⁸-1 | L+1个字节 | 微型的字符串 |
TEXT | 2¹⁶-1 | L+2个字节 | 小型的字符串 |
MEDIUMTEXT | 2²⁴-1 | L+3个字节 | 中型的字符串 |
LONGTEXT | 2³²-1 | L+4个字节 | 大型的字符串 |
ENUM | 1或2字节 | 65535 | 枚举 |
SET | 1、2、3、4或8 | 64 | 集合 |
时间型
类型 | 占用字节 | 取值范围 | 描述 |
---|---|---|---|
YEAR | 1 | 1901~2155 | 年YYYY |
DATE | 3 | 1000-01-01 ~ 9999-12-31 | 日期YYYY-MM-DD |
TIME | 3 | -838:59:59[.000000] ~ 838:59:59[.000000] | 时间HH:MM:SS |
DATETIME | 8 | 1000-01-01 00:00:00[.000000] ~ 9999-12-31 23:59:59[.999999] | 日期加时间YYYY-MM-DD HH:MM:SS |
TIMESTAMP | 4 | 1970-01-01 00:00:01[.000000] ~ 2038-01-19 03:14:07[.999999] | 时间戳 |
二级制
类型 | 占用字节 | 最大范围 | 描述 |
---|---|---|---|
BIT(M) | M | (M+7)/8 | 定长字符串 |
BINARY(M) | M | M | 定长字符串 |
VARBINARY(M) | M | L+1 或 L+2 | 变长字符串 |
TINYBLOB | 2⁸-1 | L+1 | 微型的字符串 |
BLOB | 2¹⁶-1 | L+2个字节 | 小型的字符串 |
MEDIUMBLOB | 2²⁴-1 | L+3个字节 | 中型的字符串 |
LONGBLOB | 2³²-1 | L+4个字节 | 大型的字符串 |