MySQL 数据库存储数据表中的字段类型,介绍二进制类型、时间类型、集合类型、枚举类型和字段修饰符。
一、二进制类型
二进制字段类型是在MySQL数据库中存储二进制数据的数据类型。
二进制类型包括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
可变长度二进制数据,最多65535(216-1)个字节
MEDIUMBLOB
可变长度二进制数据,最多16777215(224-1)个字节
LONGBLOB
可变长度二进制数据,最多4294967295或4GB(232-1)个字节
1.1、binary类型
长度是固定的,在创建表时就指定了
不足最大长度的空间由‘\0’补全。举个例子,binary(50)就是指定binary类型的长度为50。
1.2、varbinary类型
长度是可变的,在创建表时指定了最大长度。
指定好了varbinary类型的最大值以后,其长度可以在0到最大长度之间。
举个例子,varbinary(50)的最大字节长度是50,但是,不是每条记录的字节长度都是50。
在这个最大值范围内,使用多少分配多少。varbinary类型实际占用的空间为实际长度加一。这样,可以有效的节约系统的空间。
1.3、bit类型
bit类型也是在创建表时指定了最大长度
其基本形式如下:bit(M),其中,‘M’指定了该二进制数的最大字节长度为M,
M的最大值为64。举个例子,bit(4)就是数据类型为bit类型,长度为4。若字段的类型bit(4),存储的数据是从0~~15。因为,变成二进制以后,15的值为1111,长度为4。
如果插入的值为16,其二进制数为10000,长度为5,超过了最大长度,因此,大于等于16的数是不能插入到bit(4)类型的字段中的。
在查询bit类型的数据时,要用bin(字段名+0)来将值转换为二进制显示
1.4、blob类型
blob类型是一种特殊的二进制类型。
blob可以用来保存数据量很大的二进制数据,如图片等。通常情况下,可以将图片,PDF文档都可以存储在文件系统中,然后在数据库中存储这些文件的路径。
这种方式存储比直接存储在数据库中简单,但是访问速度比存储在数据库中慢。
1.5、二进制类型比较
blob类型与text类型很类似,不同点在于blob类型用于存储二进制数据,blob类型数据是根据其二进制编码进行比较和排序的,而text类型是文本模式进行比较和排序的。
二、set 集合类型
多选字符串数据类型,适合存储表单界面的“多选值”。
三、enum 枚举类型
单选字符串数据类型,适合存储表单界面中的“单选值”。
四、其他类型
geometry、point、multipoint、linestring、multilinestring、polygon、geometrycollection等
五、类型修饰符
MySQL 数据表中字段修饰符用于对字段类型进行补充设置;合理的使用修饰符是数据库结构设置时,必须要考虑的。
null
数据列可包含null值
not null
数据列不允许包含null值
default
默认值
primary key
主键
auto_increment
自动递增,适用于整数类型
unsigned
无符号
character set name
指定一个字符集