mysql json类型数组索引_MySQL JSON 类型数据操作

1、Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在需要扩展字段时,不需要修改表结构;

2、mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的优点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据时,还是比较别扭的。

创建JSON

类似 varchar,设置 JSON 主要将字段的 type 是 json, 不能设置长度,可以是 NULL 但不能有默认值

CREATE TABLE muscleape

(

id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,

category JSON,

tags JSON,

PRIMARY KEY (id)

);

DESC muscleape;

Field

type

Null

Key

Default

Extra

id

tinyint(3)

unsigned

NO

PRI

auto_increment

category

json

YES

""

""

tags

json

YES

""

""

插如JSON数据

1、插入 json 格式的字符串,可以是对象的形式,也可以是数组的形式;

2、可以使用JSON_OBJECT、JSON_ARRAY函数生成;(其他JSON函数:https://dev.mysql.com/doc/refman/5.7/en/json-creation-functions.html)

-- 直接插入字符串

INSERT INTO muscleape (category, tags) VALUES ('{"id": 1,"name": "muscleape"}','[1,2,3]');

-- 使用JSON函数

INSERT INTO muscleape (category, tags) VALUES (JSON_OBJECT("id",2,"name","muscleape_q"),JSON_ARRAY(1,3,5));

--

添加的数据如下:

SELECT * FROM muscleape;

id

catego

你可能感兴趣的:(mysql,json类型数组索引)