当前位置: 移动技术网 > IT编程>数据库>Mysql > mysql相关数据类型介绍

mysql相关数据类型介绍

2018年04月05日  | 移动技术网IT编程  | 我要评论

1.整数类型

数据类型 字节数 无符号数的取值范围 有符号数的取值范围
tinyint 1 0~2^8-1 -2^7 ~2^7-1
smallint 2 0~2^16-1 -2^15 ~2^15-1
mediumint 3 0~2^24-1 -2^23 ~2^23-1
int 4 0~2^32-1 -2^31 ~2^31-1
bigint 8 0~2^64-1 -2^63 ~2^63-1

2.浮点数类型和定点数类型

数据类型 字节数 有符号的取值范围 无符号的取值范围
float 4    
double 8 -1.79E+308~2.2E-308 0和2.2E-308~1.79E308
decimal(M,D) M+2 -1.79E+308~2.2E-308 0和2.2E-308~1.79E308

从表中可以看出,decimal类型的取值范围与double类型相同。需要注意的是,decimal类型的有效取值范围是由M和D决定的,其中,M表示的是数据的长度,D表示的是小数点后的长度。如:将数据类型为decimal(6,2)的数据3.1415插入数据库后,显示的是3.14。

3. 日期与时间类型

数据类型 字节数 取值范围 日期格式 零值
year 1 1901~2155 YYYY 0000
date 4 1000-01-01~9999-12-3 YYYY-MM-DD 0000-00-00
time 3 -838:59:59~838:59:59 HH:MM:SS 00:00:00
datetime 8 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 YYYY-MM-DD
HH:MM:SS
0000-00-00
00:00:00
timestamp 4 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07 YYYY-MM-DD
HH:MM:SS
0000-00-00
00:00:00

需要注意的是,如果插入的数值不合法,系统会自动将对应的零值插入数据库中。

4.字符串和二进制类型

数据类型 类型说明
char 用于表示固定长度的字符串
varchar 用于表示可变长度的字符串
binary 用于表示固定长度的二进制数据
varbinary 用于表示可变长度的二进制数据
blob 用于表示二进制大数据
text 用于表示大文本数据
enum 表示枚举类型,只能存储一个枚举字符串值
set 表示字符串对象,可以有零或多个值
bit 表示位字段类型

char与varchar对比:char(4)类型时,不管插入值的长度是多少,所占用的空间都是4个字节。varchar(4)所占用的字节数为实际长度加1。如‘’的长度为1,'abcd'的长度为5

binary与varbinary对比:他俩与char、varchar相似。binary(M)或varbinary(M),M指的是二进制数据的最大字节长度。binary类型的长度是固定的,如果数据长度不足,会在数据的后面用”\0“补齐,最终达到指定长度。

Text类型

数据类型 存储范围
tinytext 0~255字节
text 0~65535字节
mediumtext 0~16777215字节
longtext 0~4294967295字节

text类型用于表示大文本数据,例如,文章内容,评论等。

Blob类型

数据类型 存储范围
tinyblob 0~255字节
blob 0~65535字节
mediumblob 0~16777215字节
longblob 0~4294967295字节

blob类型是一种特殊的二进制类型,它用于表示数据量很大的二进制数据,如图片,pdf文档等。blob类型和text类型很相似,但blob 类型根据二进制编码进行比较和排序,而text类型数据根据文本模式进行比较和排序。

Enum类型

定义Enum类型为:Enum('值1','值2',...,'值n')。enum类型的数据只能从枚举列表中取,并且只能取一个。枚举列表中的值都有一个顺序标号,mysql中存储的是这个顺序标号而不是列表中的值。

Set类型 Set类型用于表示字符串对象,它的值可以有零个或多个,Set类型数据的定义格式与Enum类型类似。 定义格式为:Set('值1','值2',...,'值n')。同样mysql存储的是列表的顺序编号。

Bit类型 Bit类型用于表示二进制数据。定义Bit类型数据格式如下:Bit(M)。 其中M用于表示每个值的位数。当位数不足时,会在左边补零。如:为BIT(6)分配值b'101'的效果与分配b'000101'相同。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网