mysql⼤⼆进制类型_MySql⼆进制类型
MySQL⼆进制类型
⼆进制类型是在数据库中存储⼆进制数据的数据类型。⼆进制类型包括BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB等。
MySQL的⼆进制类型如下表所⽰:
整数类型
取值范围
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)个字节
BINARY类型和VARBINARY类型
BINARY类型和VARBINARY类型都是在创建表时指定了最⼤长度。基本的语法格式如下:
字符串类型(M)
其中,“字符串类型”指定了数据类型为BINARY类型还是VARBINARY类型;“M”指定了该⼆进制数的最⼤字节长度为M。这与CHAR 类型和VARCHAR类型相似。例如,BINARY(10)就是指数据类型为BINARY类型,其最⼤长度为10。
BINARY类型的长度是固定的,在创建表时就指定了。不⾜最⼤长度的空间由“\0”补全。例如,BINARY(50)就是指定BINARY类型的长度为50。
VARBINARY类型的长度是可变的,在创建表时指定了最⼤长度。指定好了VARBINARY类型的最⼤值以后,其长度可以在0到最⼤长度之间。例如,VARBINARY(50)的最⼤字节长度是50。
但是,不是每条记录的字节长度都是50,在这个最⼤值范围内,使⽤多少分配多少。VARBINARY类型实际占⽤的空间为实际长度加1。这样,可以有效的节约系统的空间。
实例
1. 创建数据表table14,定义BINARY(3)类型的字段b和VARBINARY(30)类型的字段vb。如下图所⽰:
2. 向数据表中插⼊数据'5'。如下图所⽰:
3. 查看两个字段存储数据的长度。SQL代码如下:
SELECT length(b),length(vb) FROM table14;
如下图所⽰:
从上图中代码执⾏的结果可以看出,b字段的值数据长度为3,⽽vb字段的值数据长度仅为插⼊的⼀个字符的长度1。
4. 下⾯进⼀步确认'5'在两个字段中不同的存储⽅式。SQL语句代码如下:
SELECT b,vb,b='5',b='5\0\0',vb='5',vb='5\0\0' FROM table14;
如下图所⽰:
从上图中代码执⾏的结果可以看出,b字段和vb字段的长度是截然不同的,因为b字段不⾜的空间填充了'\0',⽽vb字段则没有填充。
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. 创建数据表table15,定义BIT(4)类型的字段b。如下图所⽰:
2. 向数据表中插⼊数据2、9、15、16。如下图所⽰:
3. 查询插⼊结果。如下图所⽰:
b+0表⽰将⼆进制的结果转换为对应的数字的值,BIN()函数将数字转换为⼆进制。从结果可以看出,成功的将四个数插⼊到表中了。
提⽰
插⼊值16的⼆进制值为10000,在插⼊之后MySQL将值裁剪到指定范围的相应端点,在这⾥,指定BIT为4位,因此相应的端点值为1111,并且MySQL保存裁剪好的值。虽然默认情况下,MySQL可以插⼊超出该列允许范围的值,但是需要对数据进⾏裁剪,因⽽插⼊的数据可能是不正确的,所以要确保插⼊的值在指定的范围内。
BLOB类型mysql创建表数据类型
BLOB类型是⼀种特殊的⼆进制类型。BLOB可以⽤来保存数据量很⼤的⼆进制数据,如图⽚等。BLOB类型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。这⼏种BLOB类型最⼤的区别就是能够保存的最⼤长度不同。LONGBLOB的长度最⼤,TINYBLOB的长度最⼩。
BLOB类型与TEXT类型很类似,不同点在于BLOB类型⽤于存储⼆进制数据,BLOB类型数据是根据其⼆进制编码进⾏⽐较和排序,⽽TEXT类型是⽂本模式进⾏⽐较和排序的。
BLOB列没有字符集,并且排序和⽐较基于列值字节的数值;TEXT列有⼀个字符集,并且根据字符集对值进⾏排序和⽐较。
BLOB类型主要⽤于存储图⽚、PDF⽂档等⼆进制⽂件。通常情况下,可以将图⽚、PDF⽂档等都保存在⽂件系统中,然后在数据库中存储这些⽂件的路径。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论