第七章 MySQL数据类型
整数类型
整数类型 | 描述 | 占用字节 | 取值范围(无符号) | 取值范围(有符号) |
---|---|---|---|---|
TINYINT | 很小的整数 | 1字节 | 0~255 | -128~127 |
SMALLINT | 小整数 | 2字节 | 0~65535 | -32768~32767 |
MEDIUMINT | 中等整数 | 3字节 | 0~16777215 | -8388608~8388607 |
INT(INTEGER) | 普通整数 | 4字节 | 0~4294967295 | -2147483648~2147483647 |
BIGINT | 大整数 | 8字节 | 0~184467440703709551615 | -9223372036854775808~9223372036854775807 |
- 占用字节数越多,表示所能存储的数的范围越大
- 在写整数类型时不用指定显示宽度,数据库会自动配置显示宽度用于显示所能存储的数的范围内所有的数
- 例如,
create table type_int(a tinyint, b smallint,c int,d integer,e bigint);
浮点数与定点数类型
数据类型 | 描述 | 占用字节 | 负数的取值范围 | 非负数的取值范围 |
---|---|---|---|---|
FLOAT | 单精度浮点数 | 4字节 | -3.402823466E+38~-1.175494351E-38 | 0和1.175494351E-38~3.402823466E+38 |
DOUBLE | 双精度浮点数 | 8字节 | -1.7976931348623157E+308~-2.2250738585072014E-308 | 0和2.2250738585072014E-308~1.7976931348623157E+308 |
DECIMAL(M,D)或DEC(M,D) | 定点数 | M+2 | (同DOUBLE型) | (同DOUBLE型) |
- MySQL中可以指定浮点数的精度,其基本形式如下:
数据类型(M,D)
- M参数称为精度,是数据的总位数,小数点不占位置
- D参数成为标度,是指小数点后面的长度是D(小数的总位数),遵循四舍五入
- 例如,float(6,2)的含义数据是float型,数据长度是6,小数点后保留2位。所以,1234.56是符合要求的
日期时间类型
数据类型 | 描述 | 格式 | 占用字节 | 取值范围 |
---|---|---|---|---|
DATETIME | 日期时间 | YYYY-MM-DD HH:MM:SS | 8字节 | 1000-01-01 00:00:00~9999-12-31 23:59:59 |
DATE | 日期 | YYYY-MM-DD | 3字节 | 1000-01-01~9999-12-31 |
TIMASTAMP | 时间戳 | YYYY-MM-DD HH:MM:SS | 4字节 | |
TIME | 时间 | HH:MM:SS | 3字节 | -838:59:59~838:59:59 |
YEAR | 年 | YYYY | 1字节 | 1901~2155和0000 |
- YEAR数据类型在两位格式中,允许的值是70到69,表示从1970年到2069年
文本字符串类型
-非二进制字符串
字符串数据类型 | 描述 | 存储范围 |
---|---|---|
CHAR | 固定长度字符串 | |
VARCHAR | 可变长度字符串 | |
TINYTEXT | 小文本数据 | 0~27字节 |
TEXT | 文本数据 | 0~215字节 |
MEDIUMTEXT | 中等文本数据 | 0~223字节 |
LONGTEXT | 长文本数据 | 0~231字节 |
ENUM | 枚举类型 | |
SET | 字符串对象 |
- 二进制字符串
字符串数据类型 | 描述 | 存储范围 |
---|---|---|
BINARY | 固定长度的二进制数据 | |
VARBINARY | 可变长度的二进制数据 | |
TINYBLOB | 小二进制对象 | 0~27字节 |
BLOB | 二进制对象 | 0~215字节 |
MEDIUMBLOB | 中型二进制对象 | 0~223字节 |
LONGBLOB | 长二进制对象 | 0~231字节 |