MySQL 5.7起支持JSON数据类型的字段。JSON作为现在最为流行的数据交互形式,MySQL也不断跟进,在5.7版本开始新增JSON数据类型。虽然现在的应用应该还比较少,但也说不准能成为一种趋势。先简单学习一下MySQL对JSON数据类型的相关操作和一些内置函数(以下内容基MySQL于8.0.13)。
PS: 以下内容有不合理的地方,比如实际写SQL的时候关键字应该大写,禁用SELECT *等,只是为了直观,见谅~
创建含有JSON字段的表
create table test_json (
`id` int auto_increment,
`obj_json` JSON,
`arr_json` JSON,
primary key (`id`)
)engine = InnoDB default charset = utf8mb4;
复制代码
JSON字段无需设置长度,也不能设置默认值
插入JSON记录
MySQL的JSON类型支持JSON数组和JSON对象
#JSON_ARRAY
["xin", 2019, null, true, false, "2019-5-14 21:30:00"]
#JSON_OBJECT
{"key1": "value", "key2": 2019, "time": "2015-07-29 12:18:29.000000"}
复制代码
JSON_ARRAY和JSON_OBJECT值可为字符串,数值,null,时间类型,以及布尔值
JSON_OBJECT的键需为字符串类型
插入方式:直接通过字符串的形式
insert into test_json (obj_json, arr_json)
values ('{"key1": "value", "key2": 2019, "time": "2015-07-29 12:18:29.000000"}',
'["xin", 2019, null, true, false, "2019-5-14 21:30:00"]');
复制代码
查询结果
select * from test_json
复制代码
插入方式:通过JSON_OBJECT(),JSON_ARRAY()
insert into test_json (obj_json, arr_json)