MySQL 支持两类字符型数据:文本字符串和二进制字符串。上节《MySQL字符串类型》我们讲了文本字符串,这节我们来讲解二进制字符串。
二进制字符串类型有时候也直接被称为“二进制类型”。
MySQL 中的二进制字符串有 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
下表中列出了 MySQL 中的二进制数据类型,括号中的M表示可以为其指定长度。
类型名称
说明
存储需求
BIT(M)
位字段类型
大约 (M+7)/8 字节
BINARY(M)
固定长度二进制字符串
M 字节
VARBINARY (M)
可变长度二进制字符串
M+1 字节
TINYBLOB (M)
非常小的BLOB
L+1 字节,在此,L<2^8
BLOB (M)
小BLOB
L+2 字节,在此,L<2^16
MEDIUMBLOB (M)
中等大小的BLOB
L+3 字节,在此,L<2^24
LONGBLOB (M)
非常大的BLOB
L+4 字节,在此,L<2^32
BIT 类型
位字段类型。M 表示每个值的位数,范围为 1~64。如果 M 被省略,默认值为 1。如果为 BIT(M) 列分配的值的长度小于 M 位,在值的左边用 0 填充。例如,为 BIT(6) 列分配一个值 b'101',其效果与分配 b'000101' 相同。
BIT 数据类型用来保存位字段值,例如以二进制的形式保存数据 13,13 的二进制形式为 1101,在这里需要位数至少为 4 位的 BIT 类型,即可以定义列类型为 BIT(4)。大于二进制 1111 的数据是不能插入 BIT(4) 类型的字段中的。
提示:默认情况下,MySQL 不可以插入超出该列允许范围的值,因而插入数据时要确保插入的值在指定的范围内。
BINARY 和 VARBINARY 类型
BINARY 和 VARBINARY 类型类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字节字符串。使用的语法格式如下:
列名称 BINARY(M) 或者 VARBINARY(M)
BINARY 类型的长度是固定的,指定长度后,不足最大长度的,将在它们右边填充 “