mysql中json的使用方式详解

1. json数据类型介绍

在MySQL中,json是一种新的数据类型,它可以用来存储文本格式的JSON(JavaScript Object Notation)数据,json是一种轻量级的数据交换格式,同时也易于阅读和编写。

json数据类型的引入可以使得在MySQL中存储半结构化数据变得更加容易。

-- 创建一张带有JSON字段的表

CREATE TABLE user_info (

id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(30) NOT NULL,

age INT,

info JSON

);

2. json数据类型的操作

2.1 插入json数据类型

当要插入一条包含JSON数据类型的数据时,可以直接在INSERT INTO语句中使用JSON对象(或JSON数组)来插入数据。我们可以看下面的例子:

-- 插入ID、名称、年龄、信息四个字段,其中信息对应JSON类型,使用单引号来表示JSON对象

INSERT INTO user_info (name, age, info) VALUES ('zhangsan', 20, '{"tel": "123456789", "email": "zhangsan@123.com"}');

2.2 查询json数据类型

要查询JSON字段的值,可以使用箭头(->)或双箭头(->>)来提取JSON键的值。

->是用于提取JSON对象的值,->>是用于提取JSON数组的值。通过一些简单的示例来深入了解这两者的使用方法。

在下面的示例中,将使用以下JSON数据:

INSERT INTO user_info (name, age, info) VALUES ('zhangsan', 20, '{"tel": "123456789", "email": "zhangsan@123.com"}');

例如,我们可以使用 -> 操作符来提取电话:

-- 获取电话号码

SELECT info->'$.tel' FROM user_info WHERE id=1;

结果将返回(引号内的内容):

"123456789"

或者,我们使用 ->> 操作符来提取邮件地址:

-- 获取邮箱地址

SELECT info->>'$.email' FROM user_info WHERE id=1;

结果将返回(引号内的内容):

"zhangsan@123.com"

2.3 更新json数据类型

要更新JSON字段或数组的内容,可以使用 REPLACE 或 JSON_SET函数。

使用 REPLACE:

-- 将新的版本号存储在已有的JSON值中

UPDATE user_info SET info = JSON_REPLACE(info, '$.ver', '2.0') WHERE id=1;

使用 JSON_SET:

-- 设置新的版本号

UPDATE user_info SET info = JSON_SET(info, '$.ver', 'v2.0') WHERE id=1;

在上述示例中,我们使用JSON_REPLACE函数更新了信息JSON对象中的版本号,使用JSON_SET函数对版本号进行设置。

2.4 删除json数据类型

使用 JSON_REMOVE 函数可以删除 JSON 对象或数组的某些键值。

例如:

-- 删除电话号码

UPDATE user_info SET info = JSON_REMOVE(info, '$.tel') WHERE id=1;

在此示例中,我们使用JSON_REMOVE函数来删除信息对象中的"tel"键和它的值。

3. 总结

本文介绍了MySQL中json的使用方式,展示了使用JSON数据类型在MySQL中存储和管理半结构化数据的一些情况。

我们学习了如何插入、查询、更新和删除JSON数据,这些操作都在 MySQL 中是非常直观和方便的。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签