返回顶部
首页 > 资讯 > 数据库 >MySQL中使用JSON存储数据的实现示例
  • 342
分享到

MySQL中使用JSON存储数据的实现示例

MySQLJSON存储数据MySQLJSON存储 2023-09-21 10:09:54 342人浏览 泡泡鱼
摘要

目录1.概述:2.使用:3.查询:4.修改5.删除6.排序7.索引8.实现原理:参考资料:1.概述: Mysql从5.7版本开始引入了对JSON数据类型的原生支持。这个增强功能使开发人员能够直接在数据库中存储、操作和查询

1.概述:

Mysql从5.7版本开始引入了对JSON数据类型的原生支持。
这个增强功能使开发人员能够直接在数据库中存储、操作和查询jsON数据。

mysql的JSON字段为存储半结构化数据提供了更加灵活和高效的方式。
相比传统的关系型数据库,使用JSON字段的优势包括:

  • 灵活性:JSON字段可以存储不同结构的数据,无需提前定义表结构。
  • 扩展性:可以轻松地添加新的属性或字段,无需修改表结构。
  • 快速开发:适用于那些数据结构经常变化或者需要快速迭代开发的应用。

2.使用:

要在Mysql中定义JSON字段,只需在创建表列时将数据类型指定为JSON即可。然后可以使用适当的语法将JSON数据插入到JSON字段中。以下是一个简单的示例:

CREATE TABLE my_table (
    id INT PRIMARY KEY,
    data JSON
);
INSERT INTO my_table VALUES (1, '{"name": "Tom", "age": 30}'), (2, '{"name": "Jerry", "age": 20}');

需要注意的是,在插入JSON类型的字符串时,MySQL会对JSON字符串进行格式校验,如果格式有误,就无法插入。

3.查询:

MySQL提供了强大的函数和运算符来查询JSON字段。可以使用->运算符从JSON字段中提取特定值,或使用->>运算符将值提取为字符串。以下是一个示例:

SELECT data->"$.name" AS name, data->"$.age" AS age
FROM my_table;

查询结果:

nameage
“Tom”30
“Jerry”20

一样可以使用where语句:

SELECT data->"$.name" AS name, data->"$.age" AS age 
FROM my_table
WHERE data->"$.age" > 25;

查询结果:

nameage
“Tom”30

4.修改

  • 修改data中的age字段:
UPDATE my_table 
SET `data` = JSON_SET(`data`, "$.age", 31)
WHERE id = 1;
  • data中添加gender字段:
UPDATE my_table 
SET `data` = JSON_MERGE(`data`, '{"gender":"male"}')
WHERE id = 1;

5.删除

  • data中删除gender字段:
UPDATE my_table
SET `data` = JSON_REMOVE(`data`, "$.gender")
WHERE id = 1;

6.排序

MySQL中的JSON字段不支持直接排序。但是,我们可以使用带有->>运算符的ORDER BY子句根据特定的JSON字段对结果集进行排序。例如:

SELECT *
FROM my_table
ORDER BY data->>"$.age";

查询结果:

iddata
2{“age”: 20, “name”: “Jerry”}
1{“age”: 30, “name”: “Tom”}

7.索引

JSON字段中,可以通过添加虚拟字段,来添加索引。

ALTER TABLE my_table 
add name VARCHAR(20) GENERATED ALWAYS AS (`data` ->> '$.name');
CREATE INDEX `name_idx` ON `my_table`(`name`);  

也可以在创建表的时候,同时生成虚拟字段和索引:

CREATE TABLE my_table (
    id INT PRIMARY KEY,
    data JSON,
    name VARCHAR(20) GENERATED ALWAYS AS (data->"$.name") VIRTUAL,
    INDEX name_idx (name)
);

8.实现原理:

在内部,MySQL使用一种优化的二进制格式(Binary JSON,简称BSON)来存储JSON数据。
这种格式可以高效地存储和检索JSON数据,提供高性能和较少的存储空间需求。

参考资料:

  • MySQL官方文档
  • MYSQL中json类型添加索引

到此这篇关于MySQL中使用JSON存储数据的实现示例的文章就介绍到这了,更多相关MySQL JSON存储数据内容请搜索编程网(www.cppcns.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网(www.cppcns.com)!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中使用JSON存储数据的实现示例

本文链接: https://lsjlt.com/news/413809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中使用JSON存储数据的实现示例
    目录1.概述:2.使用:3.查询:4.修改5.删除6.排序7.索引8.实现原理:参考资料:1.概述: mysql从5.7版本开始引入了对jsON数据类型的原生支持。这个增强功能使开发人员能够直接在数据库中存储、操作和查询...
    99+
    2023-09-21
    MySQL JSON存储数据 MySQL JSON存储
  • MySQL中使用JSON存储数据
    1.概述: MySQL从5.7版本开始引入了对JSON数据类型的原生支持。 这个增强功能使开发人员能够直接在数据库中存储、操作和查询JSON数据。 MySQL的JSON字段为存储半结构化数据提供了更加...
    99+
    2023-08-31
    mysql json
  • PythonPymysql实现数据存储的示例
    目录创建存储数据表Pymysql基本使用修改爬虫程序Python 连接并操作 MySQL 数据库,主要通过 Pymysql 模块实现。这里讲解如何将抓取的数据存储至 MySQL 数据...
    99+
    2023-03-19
    Pymysql 数据存储 Pymysql 存储
  • Python Pymysql实现数据存储的示例
    目录创建存储数据表Pymysql基本使用修改爬虫程序python 连接并操作 MySQL 数据库,主要通过 Pymysql 模块实现。这里讲解如何将抓取的数据存储至 MySQL 数据库。 创建存储数据表 首先您应该确定您...
    99+
    2023-03-19
  • angularJs中json数据转换与本地存储的示例分析
    这篇文章主要为大家展示了“angularJs中json数据转换与本地存储的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angularJs中json数据...
    99+
    2024-04-02
  • 数据库中使用存储过程的实例
    这篇文章将为大家详细讲解有关数据库中使用存储过程的实例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是存储过程如果你接触过其他的编程语言,那么就好理解了,存储过程就像...
    99+
    2024-04-02
  • Html5中如何使用localStorage存储JSON数据并读取JSON数据
    这篇文章将为大家详细讲解有关Html5中如何使用localStorage存储JSON数据并读取JSON数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。localStor...
    99+
    2024-04-02
  • Android使用Sqlite存储数据用法示例
    本文实例讲述了Android使用Sqlite存储数据的方法。分享给大家供大家参考,具体如下: 一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序...
    99+
    2022-06-06
    示例 数据 SQLite Android
  • php中将json数据存储到mysql的方法
    本篇文章给大家主要讲的是关于php中将json数据存储到mysql的方法的内容,感兴趣的话就一起来看看这篇文章吧,相信看完php中将json数据存储到mysql的方法对大家多少有点参考价值吧。  ...
    99+
    2024-04-02
  • SpringBoot中如何处理MySQL中存储的JSON数据?
    目录 一、MySQL中如何保存JSON类型的数据 1.1 建表 1.2 保存一条带json的记录 1.3 查询 二、Springboot操作当前数据库表 2.1 方式一(推荐) 2.2 方式二 JSON(JavaScript Object...
    99+
    2023-09-03
    spring boot mysql json
  • MySQL中存储函数的示例分析
    这篇文章将为大家详细讲解有关MySQL中存储函数的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。存储函数什么是存储函数: 封装一段sql代码,完成一种特定的功能,...
    99+
    2024-04-02
  • MySQL中存储过程和存储函数的示例分析
    这篇文章主要为大家展示了“MySQL中存储过程和存储函数的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中存储过程和存储函数的示例分析”这篇文...
    99+
    2024-04-02
  • golang MySQL实现对数据库表存储获取操作示例
    目录新建数据库config.gogameblog.gohttpSimplify server.gocomment.gogameblog.goserver.gopostman test apiAxIOSgamelist.g...
    99+
    2024-04-02
  • golang MySQL实现对数据库表存储获取操作示例
    目录新建数据库config.gogameblog.gohttpSimplify server.gocomment.gogameblog.goserver.gopostman test...
    99+
    2024-04-02
  • 使用redis数据库存储用户信息的示例
    这篇文章给大家分享的是有关使用redis数据库存储用户信息的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。比较推荐的方式是使用redis数据库中的hash类型来存储。当然使用...
    99+
    2024-04-02
  • mysql存储中in参数的示例分析
    这篇文章主要介绍mysql存储中in参数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.in输入参数概念:表示调用者向过程传入值(传入值可以是字面量或变量)2.使用示例:mysql> de...
    99+
    2023-06-14
  • k8s数据存储之Volume使用示例详解
    目录一、什么是Volume二、k8s中的Volume三、k8s中常见的Volume类型四、Volume 之 EmptyDir 4.1 EmptyDir 特点4.2 Empt...
    99+
    2023-03-09
    k8s Volume使用 k8s数据存储Volume使用
  • MySQL开发中存储函数与触发器使用示例
    目录1、存储函数1.1、介绍1.2、案例2、触发器2.1、介绍2.2、语法2.3、案例1、存储函数 1.1、介绍 存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。具体语法如下: CREATE FUNCTIO...
    99+
    2023-01-12
    MySQL存储函数 MySQL触发器
  • 数据库mysql存储中入参出参的示例分析
    这篇文章主要介绍数据库mysql存储中入参出参的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!入参出参语法: in|out|inout 参数名 数据类型 , ...in 定义出参; out 定义入参; ino...
    99+
    2023-06-14
  • K8s中MySQL 数据持久化存储的实现
    目录一、步骤二、实践2.1 创建 PV 和 PVC2.2 部署 MySQL 服务2.3 创建测试数据2.4 模拟节点宕机2.5 数据一致性验证FAQ一、步骤 (1)创建 PV 和 P...
    99+
    2023-01-08
    K8s MySQL数据持久化存储 K8s MySQL数据持久化
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作