1. 操作JSON数据的优点
在MySQL 5.7版本及以后,MySQL可以支持JSON格式的数据类型。而在使用MySQL时,操作JSON格式的数据是非常有优越性的,以下是这种优越性的总览:
JSON数据是可读性极强的,结构清晰而有层次。
使用JSON格式数据可以避免使用多张关联表,数据查询更加高效。
JSON格式数据可以提高应用程序的性能。
2. 创建一个存储JSON数据的表格
在创建一个存储JSON数据的表格之前,需要先针对数据库服务器进行一下设置(设置默认字符集、设置安全-安全配置等)。
接下来需要执行以下SQL语句来创建一个名为“peopleInfo”的表:
CREATE TABLE `peopleInfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,
`info` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
执行以上SQL语句之后,就可以创建一个名为“peopleInfo”的新表,该表包含三个字段:id、name和info。其中,字段id是一个整数类型,用于作为主键,字段“name”是用于存储姓名的字符串类型,而字段“info”是用于存储JSON格式数据的类型。
3. 增加JSON类型数据
在表格“peopleInfo”中增加一条含有JSON数据的记录:
INSERT INTO `peopleInfo`(`name`,`info`)
VALUES ('Lucy','{"age":23, "gender":"female", "hobby":["reading","dancing"]}')
执行以上SQL语句之后,就可以在“peopleInfo”表格中增加一条记录。
4. 查询某个字段的JSON里的元素
查询表格“peopleInfo”中包含有hobby等于dancing的记录,需要使用JSON中的查询方法。
SELECT * FROM `peopleInfo`
WHERE JSON_CONTAINS(info, '{"hobby":["dancing"]}');
执行以上SQL语句之后,就可以查询到符合条件的记录。
5. 更新JSON类型数据
需要使用JSON中的更新元素的方法。比如,将名为Lucy的记录中的hobby修改为hiking和singing。
UPDATE `peopleInfo`
SET `info` = JSON_REPLACE(`info`, '$.hobby', '["hiking", "singing"]')
WHERE `name` = 'Lucy';
执行以上SQL语句之后,对应的信息就会被修改。
6. 删除JSON类型数据
需要使用JSON中的删除元素的方法。比如,将名为Lucy的记录删除。
DELETE FROM `peopleInfo`
WHERE `name` = 'Lucy';
执行以上SQL语句之后,对应信息就会被删除。
结论
在MySQL中使用JSON格式数据可以极大地提高操作效率,同时还能够减少使用多张关联表的数量,减少代码的冗余。因此,在开发MySQL数据库时,合理地使用JSON数据存储可以帮助我们更加轻松地维护数据库。