mysql varbinary类型_mysql中varbinary、binary、char、varchar异同

mysql varbinary类型_mysql中varbinary、binary、char、varchar异同binary 与 varbinary 类型和 char 与 varchar 类型是相似的 只是他们存储的是二进制数据 也就是说他们是包含字节流而不是字符流 他们有二进制字符的集合和顺序 他们的对比 排序是基于字节的数值进行的 binary 与 varbinary 的最大长度和 char 与 varchar 是一样的 只不过他们是定义字节长度 而 char 和 varchar 对应的是字符长度 存储和取出时对尾部空格的处理 char

binary 与 varbinary 类型和char与varchar类型是相似的,只是他们存储的是二进制数据,也就是说他们是包含字节流而不是字符流,他们有二进制字符的集合和顺序,他们的对比,排序是基于字节的数值进行的

binary与varbinary的最大长度和char与varchar是一样的,只不过他们是定义字节长度,而char和varchar对应的是字符长度。

存储和取出时对尾部空格的处理

char(N)用来存储非二进制字符串,插入时,对于少于N个字符的会自动在尾部加空格,查询时,尾部的空格就会被丢弃掉

vachar(N) 用来存储非二进制字符串,插入时,对于少于N个字符的不填补空格,查询时,尾部的空格不会被丢弃掉

binary(N)存储二进制字符串,插入进,少于N个字节的会自动在尾部加0x00,取出时,所有的字节都保留,返回定义长度的字节长度,在比较的时候,所有的字节都是有效的,并且0x00

varbinary在插入不会去填补0x00字节,查询的时候也不会丢弃任何字节,在比较的时候,所有的字节都是有效的,并且0x00

大小比较时

char与varchar的字符比较中,是忽略大小写与最后的空格的,如:

mysql> select ‘a’=’a ‘ , ‘a’=’A’ , ‘a’=’A ‘;

+———-+———+———-+

| ‘a’=’a ‘ | ‘a’=’A’ | ‘a’=’A ‘ |

+———-+———+———-+

|        1 |       1 |        1 |

+———-+———+———-+

1 row in set (0.00 sec)

而binary及varbinary的字节比较中,所有的信息都不会被忽略,如:

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.08 sec)

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

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

(0)
上一篇 2025年7月3日 下午7:01
下一篇 2025年7月3日 下午7:22


相关推荐

  • mysql binlog日志自动清理及手动删除

    mysql binlog日志自动清理及手动删除删除 10 天前的 MySQLbinlog 日志 附录 2 有关于 PURGEMASTERL 手动删除用法及示例 vim etc my cnf 修改 expire logs days x 是自动删除的天数 一般将 x 设置为短点 如 10 expire logs days x 二进制日志自动删除的天数 当然也可以不重启 mysql 开启 mysql 主从 直接在 mysql 里设置 expire logs days 此方法需要重启 mysql 附录有关于 expire logs days 的英文说明

    2026年3月19日
    2
  • javastream流详解_Java获取文件流的所有方式

    javastream流详解_Java获取文件流的所有方式一、Stream流引入Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。(Lambda表达式详解在上篇博客内容)现有一个需求:将list集合中姓张的元素过滤到一个新的集合中然后将过滤出来的姓张的元素中,再过滤出来长度为3的元素,存储到一个新的集合中1.用常规方法解决需求/…

    2022年10月6日
    4
  • oracle数据库怎么切换实例,oracle切换数据库实例

    oracle数据库怎么切换实例,oracle切换数据库实例1 5 汇总表格完成规划后填写表 1 5 1 A 机 Oracle 基目录 OracleBase A 机 Oracle 主目录 OracleHome A 机 Listener 名称 A 机数据库实例名 A 机数据库实例目录 B 机 Oracle 基目录 OracleBase B 机 Oracle 主目录 Oracle 数据库存储迁移案例分享一 环境及需求简要说明环境为 O

    2026年3月26日
    1
  • 如何清除网上浏览痕迹?清除缓存

    如何清除网上浏览痕迹?清除缓存

    2021年9月20日
    42
  • java vm参数设置_Java VM 启动参数详解

    java vm参数设置_Java VM 启动参数详解JavaVM 启动参数详解 Date2017 05 24 打印输出相关参数 verbose 打印加载类的详细信息 verbose gc 打印虚拟机中 GC 的详细情况 显示最忙和最空闲收集行为发生的时间 收集前后的内存大小 收集需要的时间等 XX HeapDumpOnOu XX HeapDumpPath home admin logs java hprof 虚拟机在出现内

    2026年3月19日
    1
  • pycharm2021激活码10月_在线激活[通俗易懂]

    (pycharm2021激活码10月)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    47

发表回复

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

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