前言

BINARY和VARBINARY与 CHAR和VARCHAR类型有点类似,不同的是BINARY和VARBINARY存储的是二进制的字符串,而非字符型字符串。也就是说,BINARY和VARBINARY没有字符集的概念,对其排序和比较都是按照二进制值进行对比。

BINARY(N)VARBINARY(N)中的N指的是字节长度,而CHAR(N)VARCHAR(N)中N指的是的字符长度。对于BINARY(10) ,其可存储的字节固定为10,而对于CHAR(10) ,其可存储的字节视字符集的情况而定。

我们来看下面的例子。

mysql> CREATE TABLE t ( -> a BINARY(1) -> )ENGINE=InnoDB CHARSET=GBK;Query OK, 0 rows affected (0.02 sec)
mysql> CREATE TABLE t ( -> a CHAR(1) -> )ENGINE=InnoDB CHARSET=GBK;Query OK, 0 rows affected (0.02 sec)
mysql> SELECT -> HEX('a'), -> HEX('a '), -> 'a'='a '\G; *************************** 1. row ***************************HEX('a'): 61HEX('a '): 612020'a'='a ': 11 row in set (0.00 sec)

第三个不同的是,对于BINARY字符串,其填充字符是0x00,而CHAR的填充字符为0x20。可能是因为BINARY的比较需要,0x00显然是比较的最小字符,示例如下:

mysql> CREATE TABLE t ( a BINARY(3));Query OK, 0 rows affected (0.00 sec)

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Android(安卓)- Manifest 文件 详解
  3. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  4. Selector、shape详解(一)
  5. android2.2资源文件详解4--menu文件夹下的菜单定义
  6. Android发送短信方法实例详解
  7. Android(安卓)读取资源文件实例详解
  8. 详解Android中的屏幕方向
  9. Android学习笔记(10)————Android的Listview详解1(ArrayAdapte

随机推荐

  1. Android之不要滥用SharedPreferences
  2. 解决Android sdk更新不能下载或下载内容
  3. Android layout常见的属性大全
  4. 老罗Android开发视频教程 (android常用布
  5. 让Python在Android系统上飞一会儿
  6. Androidの自定义Spinner实现
  7. 【Android Studio使用教程4】Android Stu
  8. 修改android升级系统后启动系统,提示andro
  9. Android TextView 设置行间距字间距
  10. Android 入门前言之 --布局