MySQL数据类型介绍
1、整数类型
整数类型 | 字节数 | 无符号数的数值范围 | 有符号为的数值范围 |
---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 |
SMALLINT | 2 | 0~65525 | -32768 ~ 32767 |
MEDIUMINT | 3 | 0~ 16,777,215 | -8,388,608~ 8,388,607 |
INT(INTEGER) | 4 | 0~4,294,967,295 | -2,147,483,648~2,147,483,647 |
BIGINT | 8 | 0~18,446,744,073,709,551,615 | -9,223,372,036,854,775,808~9,223,372,036,854,775,807 |
2、浮点数据类型
浮点类型 | 字节数 | 类型 |
---|---|---|
FLOAT | 4 | 单精度浮点型 |
DOUBLE | 8 | 双精度浮点型 |
DECLIMAL(M,D) 或者DEC(M,D) | M+2 | 双精度浮点型 |
MySQL中支持指定浮点数(M)和定点数(D)的精度
浮点数(M):精度,是数据的总长度,小数点不占用位置;
定点数(D):标度,是小数点后的数字长度
# 数据类型
FLOAT (6,2) # 符合数据是:1234.56
FLOAT (8,2) # 符合数据是:123456.78
3、日期和时间类型
日期和时间类型 | 字节数 | 取值范围 |
---|---|---|
YEAR | 1 | ‘1901’~‘2155’ |
DATE | 4 | ‘1000-01-01’ ~‘9999-01-01’ |
TIME | 3 | ‘-839:59:59’~‘838:59:59’ |
DATETIM | 8 | ‘1000-01-01 00:00:00’~‘9999-01-01 23:59:59’ |
TIMESTAMP | 4 | ‘1970-01-01 08:00:01’~‘2038-01-19 11:14:07’ |
注意
:设置时间的类型值需要用字符串
各种日期类型默认格式
- YEAR类型:
'YYYY'
- DATE类型:
'YYY-MM-DD'
- TIME类型:
'HH:MMM:SS'
- DATETIME类型:
'YYY-MM-DD HH:MMM:SS'
- TIMESTAMP类型:
'YYY-MM-DD HH:MMM:SS'
4、字符类型
字符串类型包含了char、varchar、blob、text、enum、set。
4.1 CHAR
和VARCHAR
类型
在创建的时候需要指定最大长度,基本形式:
字符串类型(M) # M代表长度
CHAR(10) #CHAR类型的长度一旦声明就固定了
# VARCHAR类型的长度是根据实际的长度进行分配的,
# M=20代表的是最大可存储的长度
VARCHAR(20)
4.2TEXT
类型
是一种特殊的字符串类型。TEXT只能保存字符数据,例如可以用于保存新闻、文章的
类型 | 允许长度 | 存储空间 |
---|---|---|
TINYTEXT | 0~255字节 | 值的长度+2字节 |
TEXT | 0~65535字节 | 值的长度+2字节 |
MEDIUMTEXT | 0-1677721150字节 | 值的长度+3字节 |
LONGTEXT | 0~4294967295字节 | 值的长度+4字节 |
4.3ENUM
类型
枚举类型,在创建的时候指定ENUM
类型的值取值范围,基本形式如下:
属性名 ENUM('值1','值2',...,'值n')
4.4SET
类型
SET类型的数值范围在创建的就以列表的形式指定,基本的形式如下:
属性名 SET ('值1','值2',...,'值n')
5、二进制
数据类型
二进制的数据类型包含了BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB、和LONGBLOB
类型 | 取值范围 |
---|---|
BINARY(M) | 字节数为(M),允许长度是0-M的定长二进制字符串 |
VARBINARY(M) | 允许长度是0-M的定长二进制字符串,字节数为值的长度+1 |
BIT(M) | M位二级制数据,M最大值64 |
TINYBLOB | 可变长二进制数据,最多可存放255个字节 |
BLOB | 可变长二进制数据,最多可存放(2^16)-1个字节 |
MEDIUMBLOB | 可变长二进制数据,最多可存放(2^24)-1个字节 |
LONGBLOB | 可变长二进制数据,最多可存放(2^32)-1个字节 |
注意:
- (BINARY、VARBINARY) 和 (CHAR 、VARCHAR)类似,都是字符串类型。
- BLOB类型是一种特殊的二进制类型,可以用于存储图片、PDF文档等二进制的文件