binary和varbinary数据类型在MySQL的详细解决方案

binary和varbinary数据类型在MySQL的详细解决方案
前言

binary和varbinary类似CHAR和VARCHAR。不同的是,binary和varbinary存储二进制字符串而不是字符串,也就是说,binary和varbinary没有字符集的概念,和它们的排序和比较进行比较,根据二进制值。
N元(N)和varbinary(n)指的是字节长度N和字符长度指的是char(n)和varchar(n)。二元(10),其存储的字节固定为10,并为char(10),存储的字节都依赖在设定的字符的字符。

让我们来看看下面的例子。

创建表T(
-二进制(1)
字符集= GBK ->引擎= InnoDB);
查询OK,0行受影响(0.02秒)
MySQL >设置GBK;
查询OK,0行受影响(0秒)
插入到我;
查询OK行,1受影响,1警告(0.01秒)
记录:1个重复:0个警告:1
显示警告;
*************************** 1。行***************************
级别:警告
代码:1265
信息:数据截断column'a'at排1
1行集(0秒)
从a中选择a,十六进制(a);
*************************** 1。行***************************
一个:
十六进制(a):CE
表包含一个柱型二元(1),因为N(n)表示二进制字节,和GBK字符集汉字需要2个字节,所以给予警告时插入,提示字符被截断。如果sql_mode是一个严格的模型,可以直接看表错了。T的内容,你能发现我的字符的第一个字节是存储在一个字节,后者被截断。如果在一列表的字符类型是char类型,就不会有上述问题,例如:

创建表T(
- char(1)
字符集= GBK ->引擎= InnoDB);
查询OK,0行受影响(0.02秒)
插入到我;
查询OK行,1受影响,1警告(0.01秒)
记录:1个重复:0个警告:0
从a中选择a,十六进制(a);
*************************** 1。行***************************
我一个:
六(一):ced2
1行集(0秒)
char和varchar binary和varbinary相比,第一个区别是,二元(n)和varbinary(N)的n值表示的字节数,而不是字符长度;第二不同的是,在性格上比较CHAR和VARCHAR,性格比较本身只是存储的字符,忽略填充字符后的字符,和binary和varbinary,为的是与二进制比较一致,那么结果将是非常不同的,例如:

MySQL >选择
-> Hex(A),
-> Hex(A),
A=-> G;
*************************** 1。行***************************
六角(A):61
六角(A):612020
A=:1
1行集(0秒)
MySQL >选择
->进制(二进制(A)),
(六->二进制(A)),
->二进制('a')=二进制('a' G);
*************************** 1。行***************************
十六进制(二进制(A)):61
十六进制(二进制(A)):612020
二进制(A)=(a):0元
1行集(0秒)
For CHAR and VARCHAR, the comparison is the character value, so the return value of the first comparison is 1.For BINARY and VARBINARY, the comparison is binary, a's sixteen is 61, a's sixteen is 612020, obviously different, so second comparison return value is 0.

第三个区别是,对于二进制字符串,填充字符是0x00,和焦炭的填充字符0x20。也许是因为二进制的需要,0x00显然是比较小的特点,并举例如下:

创建表T(二进制(3));
查询OK,0行受影响(0秒)
MySQL >插入T select'a;
查询OK,1行受影响(0秒)
记录:1个重复:0个警告:0
从a中选择a,十六进制(a);
*************************** 1。行***************************
答:一个
十六进制(a):610000
1行集(0秒)
总结

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持。

tag:解决方案数据类型详细电脑软件binary

相关内容