数据类型
BINARY 和 VARBINARY 类型类似于 CHAR 和 VARCHAR,
不同的是,它们所表示的是二进制数据。
BINARY(M) 或 VARBINARY(M)
M:二进制数据的最大字节长度。
BINARY 和 VARBINARY 类型
BINARY 类型的长度是固定的,如果数据的长度不足最大长度,将在数据的后面用“\0”补齐,最终达到指定长度。
例如:数据类型为 BINARY(3),
当插入 a 时,实际存储的数据为“a\0\0”,
当插入 ab 时,实际存储的数据为“ab\0”。
BINARY 和 VARBINARY 类型
BINARY 和 VARBINARY 使用示例
① 创建表,插入测试记录
mysql> CREATE TABLE my_binary (b1 BINARY(4), b2 VARBINARY(4));
mysql> INSERT INTO my_binary VALUES('abc', 'xyz');
② 查询记录,两次查询结果分别为“abc\0”和“xyz”(\0 显示为空格)
mysql> SELECT b1 FROM my_binary WHERE b1 = 'abc\0';
mysql> SELECT b2 FROM my_binary WHERE b2 = 'xyz';
③ 查询记录,由于区分大小写,查询结果都为空
mysql> SELECT b1 FROM my_binary WHERE b1 = 'ABC\0';
mysql> SELECT b2 FROM my_binary WHERE b2 = 'XYZ';
BLOB 类型:保存数据量很大的二进制数据。
BLOB 根据二进制编码进行比较和排序;
TEXT 根据文本模式进行比较和排序。
BLOB 使用示例
① 创建表,插入测试记录
mysql> CREATE TABLE my_blob (b BLOB);
mysql> INSERT INTO my_blob VALUES('data');
② 查询记录,查询结果为“data”
mysql> SELECT b FROM my_blob WHERE b = 'data';
③ 查询记录,由于区分大小写,查询结果为空
mysql> SELECT b FROM my_blob WHERE b = 'Data';
MySQL 从 5.7.8 版本开始提供了 JSON 数据类型。
作用:JSON 是一种轻量级的数据交换格式
由来:由 JavaScript 语言发展而来,其本质是一个字符串。
MySQL 中 JSON 类型值常见的表现方式有两种,分别为 JSON 数组 和 JSON 对象。
① JSON 数组
["abc", 10, null, true, false]
② JSON 对象
{"k1": "value", "k2": 10}
JSON 类型使用示例
① 创建表,插入测试记录
mysql> CREATE TABLE my_json (j1 JSON, j2 JSON);
mysql> INSERT INTO my_json VALUES
-> ('{"k1": "value", "k2": 10}', '["run", "sing"]');
② 查询记录
mysql> SELECT * FROM my_json;
+---------------------------+-----------------+
| j1 | j2 |
+---------------------------+-----------------+
| {"k1": "value", "k2": 10} | ["run", "sing"] |
+---------------------------+-----------------+
1 row in set (0.00 sec)
回见。
版权声明: 本文为 InfoQ 作者【在即】的原创文章。
原文链接:【http://xie.infoq.cn/article/e61c812994770fc1dfbaea58d】。文章转载请联系作者。
评论