mysql varbinary 长度_mysql8 参考手册–BINARY和VARBINARY类型

mysql varbinary 长度_mysql8 参考手册–BINARY和VARBINARY类型BINARY 和 VARBINARY 类型与 CHAR 和 VARCHAR 类似 只是它们存储的是二进制字符串而不是非二进制字符串 也就是说 它们存储字节字符串而不是字符串 这意味着它们具有二进制字符集和排序规则 并且比较和排序基于值中字节的数值 对于 BINARY 和 VARBINARY 允许的最大长度与 CHAR 和 VARCHAR 相同 只是 BINARY 和 VARBINARY 的长度是以字节而不是字符度量的 BINARY 和

BINARY和VARBINARY类型与CHAR和VARCHAR类似,只是它们存储的是二进制字符串而不是非二进制字符串。也就是说,它们存储字节字符串而不是字符串。这意味着它们具有二进制字符集和排序规则,并且比较和排序基于值中字节的数值。

对于BINARY和VARBINARY,允许的最大长度与CHAR和VARCHAR相同,只是BINARY和VARBINARY的长度是以字节而不是字符度量的。

BINARY和VARBINARY数据类型不同于CHAR BINARY和VARCHAR BINARY数据类型。对于后一种类型,BINARY属性不会将列视为二进制字符串列。相反,它将使用列字符集(如果未指定列字符集,则使用表默认字符集)的二进制`(_bin)’排序规则,并且列本身存储非二进制字符串,而不是二进制字节字符串。例如,如果默认字符集是utf8mb4,则CHAR(5)BINARY被视为CHAR(5)character set utf8mb4 COLLATE utf8mb4_bin。这与BINARY(5)不同,后者存储具有二进制字符集和排序规则的5字节二进制字符串。

如果未启用严格的SQL模式,并且您为BINARY或VARBINARY列分配的值 超过了列的最大长度,则该值将被截断以适合并生成警告。对于截断的情况,要导致发生错误(而不是警告)并抑制该值的插入,请使用严格的SQL模式。

当存储二进制值时,它们用pad值填充到指定的长度。pad值为0x00(零字节)。值用0x00右填充以进行插入,并且不删除用于检索的尾随字节。所有字节在比较中都是重要的,包括按顺序和不同的操作。0x00和space的比较不同,0x00在space之前排序。

示例:对于BINARY(3)列, 在插入时’a ‘变为 ‘a \0’。 插入时’a\0’变为’a\0\0’。两个插入的值均保持不变以进行检索。

对于VARBINARY,不存在插入的填充,也不剥离用于检索的字节。所有字节在比较中都是重要的,包括按顺序和不同的操作。0x00和space的比较不同,0x00在space之前排序。

对于剥离尾随字节或比较忽略它们的情况,如果一列具有要求唯一值的索引,则将仅尾随字节数不同的值插入该列会导致重复键错误。例如,如果表包含’a’,则尝试存储’a\0’会导致重复键错误。

如果打算使用BINARY数据类型存储二进制数据并且要求检索的值与存储的值完全相同,则应仔细考虑上述填充和剥离特性 。以下示例说明了 值的0x00填充如何影响 YBINAR列值比较:

mysql> CREATE TABLE t (c BINARY(3));

Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO t SET c= ‘a’;

Query OK, 1 row affected (0.01 sec)

mysql> SELECT HEX(c), c= ‘a’, c = ‘a\0\0’ from t;

+——–+———+————-+

| HEX(c) | c = ‘a’ | c = ‘a\0\0’ |

+——–+———+————-+

| | 0 | 1 |

+——–+———+————-+

1 row in set (0.09 sec)

如果检索的值必须与为存储指定的值相同且没有填充,则最好使用VARBINARY或使用 一种 BLOB数据类型来代替。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219456.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:31
下一篇 2026年3月17日 下午10:31


相关推荐

  • OpenClaw 接入飞书:从安装到插件生态的一次实践

    OpenClaw 接入飞书:从安装到插件生态的一次实践

    2026年3月13日
    4
  • ODS与EDW的区别「建议收藏」

    ODS与EDW的区别「建议收藏」根据自己的理解与实际项目经验,说说ODS与EDW的异同。如果有不对的地方,欢迎大家批评指正。维基百科对于ODS的定义为”Anoperationaldatastore(or“ODS”)isadatabasedesignedtointegratedatafrommultiplesourcesforadditionaloperationsonthedata.Un

    2026年4月14日
    3
  • sql2008r2绿色版免安装_少女都市模拟器中文版激活成功教程版免费

    sql2008r2绿色版免安装_少女都市模拟器中文版激活成功教程版免费中文版本64位免激活成功教程SQLyog-12.5.064位中文激活成功教程版 百度云盘https://pan.baidu.com/s/1yvQ7f0esY8idqc_Ci3Su2Ahttps://pan.baidu.com/s/1mhFLVpm 原文:https://blog.csdn.net/odyssey1816/article/details/78801342…

    2026年2月26日
    6
  • ReLU和BN层简析[通俗易懂]

    ReLU和BN层简析[通俗易懂]卷积神经网络中,若不采用非线性激活,会导致神经网络只能拟合线性可分的数据,因此通常会在卷积操作后,添加非线性激活单元,其中包括logistic-sigmoid、tanh-sigmoid、ReLU等。sigmoid激活函数应用于深度神经网络中,存在一定的局限性,当数据落在左右饱和区间时,会导致导数接近0,在卷积神经网络反向传播中,每层都需要乘上激活函数的导数,由于导数太小,这样经过几次传播后,靠…

    2022年10月9日
    5
  • 应用多开,定位,机型伪装这都有

    应用多开,定位,机型伪装这都有这几天总有粉丝在后台问分身的软件,而之前的给大家介绍的基本上都失效了,所以今天给大家再重新整理一下分身的软件我们手机上一般都自带多开,但只能开一个·,所以给大家带来的软件支持多开而且支持虚拟定位机型伪装(又可以装X了)电脑模拟器一般的模拟器都有多开的功能,这里我给大家推荐一下我在用的模拟器—逍遥模拟器其它的模拟器也很好用,关于模拟器过以后再给大家推荐几款的沙盘文章里有详细介绍:htt…

    2022年5月27日
    100
  • JAVA POI的使用

    JAVA POI的使用下载地址 https archive apache org dist poi release bin 需要的 jar 包 我用的是 3 10final Poi 3 10 Final jar 用于 xls Poi ooxml 3 10 Final jar 用于 xlsx Poi ooxml schemas 3 10 jarXmlbeans 2 30 jardom4j 1 6 1 jarp

    2025年11月1日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号