MySQL数据库基础:JSON函数各类操作一文详解

这篇具有很好参考价值的文章主要介绍了MySQL数据库基础:JSON函数各类操作一文详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

很多日常业务场景都会用到json文件作为数据存储起来,而mysql5.7以上就提供了存储json的支撑。往常存储json一般都保留在pg库或者是hive库里面,现在mysql有了支持的话基本业务都可以用mysql来实现。现在mysql8.x版本对json字符出处理已经做的非常完善了。现在就让我们来详细了解一下关于json数据数据类型mysql都有哪些函数能够对其进行操作。

该系列文章将按照这个脉络行文,此系列文章将被纳入我的专栏一文速学SQL各类数据库操作,基本覆盖到使用SQL处理日常业务以及常规的查询建库分析以及复杂操作方方面面的问题。从基础的建库建表逐步入门到处理各类数据库复杂操作,以及专业的SQL常用函数讲解都花费了大量时间和心思创作,如果大家有需要从事数据分析或者数据开发的朋友推荐订阅专栏,将在第一时间学习到最实用常用的知识。此篇博客篇幅较长,值得细读实践一番,我会将精华部分挑出细讲实践。博主会长期维护博文,有错误或者疑惑可以在评论区指出,感谢大家的支持。

一、JSON语法规则

首先我们还是先复习一遍json数据类型的语法规则,这在我的很多文章都有写到:

JSON是一个标记符的序列。这套标记符包含六个构造字符字符串数字和三个字面名

JSON是一个序列化的对象数组

  • 数据为  键 / 值 (name/value)对;
  • 数据由逗号(,)分隔;
  • 大括号保存对象(object);
  • 方括号保存数组(Array);

可以是对象数组数字字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。

如:

“code”:“100”

对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的由逗号分割的键值对组成: {“code”:20,“type”:“mysql”}

数组是由方括号括起来的一组值构成: “datesource”:[
{“code”:“20”, “type”:“mysql”},
{“code”:“20”, “type”:“mysql”},
{“code”:“20”, “type”:“mysql”}
] 复习完毕之后我们再来对mysql处理json函数实验。

二、JSON函数

首先我们创建一个表来进行操作:

create TABLE json_test(
	id int not null primary key auto_increment,
	content json
	);
复制代码

接下来,向test_json数据表中插入数据。

insert into json_test(content) values('{"name":"fanstuck","age":23,"address":{"province":"zhejiang","city":"hangzhou"}}')
复制代码

可以使用“->”和“->>”查询JSON数据中指定的内容。

SELECT content->'$.name' FROM json_test where id =1;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

1.JSON_CONTAINS(json_doc,value)函数

JSON_CONTAINS(json_doc,value)函数查询JSON类型的字段中是否包含value数据。如果包含则返回1,否则返回0。其中,json_doc为JSON类型的数据,value为要查找的数据。

SELECT JSON_CONTAINS(content, '{"name":"fanstuck"}') FROM json_test ;    
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

SELECT JSON_SEARCH(content ->> '$.address', 'all', 'nanchang') FROM json_test ;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

 3.JSON_PRETTY(json_doc)函数

JSON_PRETTY(json_doc)函数以标准的格式显示JSON数据。

 SELECT JSON_PRETTY(content) FROM json_test ;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

 4.JSON_DEPTH(json_doc)函数

JSON_DEPTH(json_doc)函数返回JSON数据的最大深度。

 SELECT JSON_DEPTH(content) FROM json_test;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

 5.JSON_LENGTH(json_doc[,path])函数

JSON_LENGTH(json_doc[,path])函数返回JSON数据的长度。

SELECT JSON_LENGTH(content) FROM json_test;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

 6.JSON_KEYS(json_doc[,path])函数

JSON_KEYS(json_doc[,path])函数返回JSON数据中顶层key组成的JSON数组。

 SELECT JSON_KEYS(content) FROM json_test;

MySQL数据库基础:JSON函数各类操作一文详解

7. JSON_INSERT(json_doc,path,val[,path,val] …)函数

JSON_INSERT(json_doc,path,val[,path,val] …)函数用于向JSON数据中插入数据。

{"age": 23, "name": "fanstuck", "address": {"ip": "192.168.12.12", "city": "hangzhou", "province": "zhejiang"}}
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

可以看到,JSON_INSERT()函数并没有更新数据表中的数据,只是修改了显示结果。

8.JSON_REMOVE(json_doc,path[,path] …)函数

JSON_REMOVE(json_doc,path[,path] …)函数用于移除JSON数据中指定key的数据。

 SELECT JSON_REMOVE(content, '$.address.city') FROM json_test WHERE id = 2;
复制代码

9.JSON_REPLACE(json_doc,path,val[,path,val] …)函数

JSON_REPLACE(json_doc,path,val[,path,val] …)函数用于更新JSON数据中指定Key的数据。

SELECT JSON_REPLACE(content,'$.age',20) FROM json_test ;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

可以看到,JSON_REPLACE()函数并没有更新数据表中的数据,只是修改了显示结果。

10.JSON_SET(json_doc,path,val[,path,val] …)函数

JSON_SET(json_doc,path,val[,path,val] …)函数用于向JSON数据中插入数据。

 SELECT JSON_SET(content, '$.address.street', 'xxx街道') FROM json_test WHERE id = 1;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

 11.JSON_TYPE(json_val)函数

JSON_TYPE(json_val)函数用于返回JSON数据的JSON类型,MySQL中支持的JSON类型除了可以是MySQL中的数据类型外,还可以是OBJECT和ARRAY类型,其中OBJECT表示JSON对象,ARRAY表示JSON数组。

 SELECT JSON_TYPE(content) FROM json_test ;
复制代码

MySQL数据库基础:JSON函数各类操作一文详解

12. JSON_VALID(value)函数

JSON_VALID(value)函数用于判断value的值是否是有效的JSON数据,如果是,则返回1,否则返回0,如果value的值为NULL,则返回NULL。

 SELECT JSON_VALID('{"name":"binghe"}'), JSON_VALID('name'), JSON_VALID(NULL);
复制代码

MySQL数据库基础:JSON函数各类操作一文详解文章来源地址https://www.toymoban.com/news/detail-441170.html

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

到了这里,关于MySQL数据库基础:JSON函数各类操作一文详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库基础(八):DML数据操作语言

    文章目录 DML数据操作语言 一、DML包括哪些SQL语句 二、数据的增删改(重点) 1、数据的增加操作 2、数据的修改操作 3、数据的删除操作 insert插入、update更新、delete删除 增加:insert 删除:delete 修改:update 1、数据的增加操作  基本语法: 特别注意:在SQL语句中,除了数字,

    2024年02月19日
    浏览(50)
  • MySQL数据库、表、用户的基础操作

    根据两个实例进行练习 1)创建库 2)创建表 3)字段插入(调换位置) 4)修改字段类型 5)修改字段名 6)增加字段 7)修改表名(这一步做掉了,最后才添加上来。所以后面添加外键主表名依旧为customers。) 8)删除字段 9)修改存储引擎 2、 (1)创建表、添加外键约束 (2)删除外

    2024年02月12日
    浏览(45)
  • 【Mysql】数据库基础与基本操作

    🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘 。 🛸 Mysql专栏 : Mysql内功修炼基地 家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我

    2024年02月13日
    浏览(44)
  • Java基础 - JDBC操作数据库(MySql)

    JDBC是Java语言操作数据库的一套接口,也就是规范,具体的实现需要各个数据库厂商去实现。比如我们在使用JDBC去连接mySql数据库的时候,我们必须要依赖一个叫做mysql-connector-java的jar包,这里面封装的就是mySql对于JDBC的实现。 Java中使用JDBC 首先引入mysql-connector-java依赖,比如

    2024年01月25日
    浏览(62)
  • MySQL数据库基础(三):多表查询,子查询,开窗函数

    表与表之间的关系 在SQL语句中,数据表与数据表之间,如果存在关系,一般一共有3种情况: ① 一对一关系(高级) 比如有A、B两张表,A表中的每一条数据,在B表中有一条唯一的数据与之对应。 用户表user user_id(用户编号) 账号username 密码password 001 admin admin888 002 itheima

    2024年02月12日
    浏览(45)
  • 【MySQL】基础实战篇(1)—数据库与数据表的操作

    创建数据库 语法: 注: 在同一个数据库服务器上必须是唯一的,不允许存在同名的数据库。 此外在创建数据库时如果不进行自定义设置编码方式,就会使用系统默认的编码方式,所以我们可以在创建数据库的同时自定义设置编码方式。 语法: 字符集 是定义MySQL存储字符串

    2024年02月08日
    浏览(69)
  • MySQL入门指南:数据库操作的基础知识

    当谈到关系型数据库管理系统(RDBMS)时,MySQL无疑是最常见和广泛使用的一个。它是一个强大的工具,用于存储、管理和检索数据。在这篇博客中,我们将介绍MySQL的基本知识,包括数据库的操作、数据表的操作以及数据的增删改查~~ 目录 1. 数据库的操作 1.1 创建数据库 1.2 删除

    2024年02月07日
    浏览(101)
  • 【MySQL数据库重点】第二节:MySQL基础知识(基本操作)

    目录 一:数据库的操作 1.显示数据库 2.创建数据库 3.使用数据库 4.删除数据库 二:常用数据类型 1.数值类型:整型和浮点型 2.字符串类型 3.日期类型 三:表的操作 1.查看表结构 2.创建表 3.删除表 1.显示数据库 语法: show databases;  2.创建数据库 (1)简化语法 create database 数

    2024年02月08日
    浏览(56)
  • 零基础学MySQL(五)-- 详细讲解数据库中的常用函数

    提供 student 表 1️⃣count 函数 count 表示返回行的总数 (1)基本语法 (2)基本练习 统计一个班级共有多少学生? 统计数学成绩大于 90 的学生有多少个? 统计总分大于 250 的人数有多少? (3)注意细节 count(*) 和 count(列) 的区别: count(*) 返回满足条件的记录的行数 count(列

    2024年01月19日
    浏览(59)
  • 一篇文章打好SQL基础,熟悉数据库的基础操作和方法,以及安装MySQL软件包和Python操作MySQL基础使用

    SQL的全称:Structured Query Language,结构化查询语言,用于 访问和处理数据库的标准计算机语言 。 SQL语言1974年有Boyce和Chamberlin提出的,并且首先在IBM公司研制的关系数据库系统SystemR上实现。 经过多年发展,SQL已经成为数据库领域同意的数据操作标准语言,可以说几乎市面上所

    2024年02月08日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包