MySQL新类型JSON的用法讲解

前言

MySQL相信大家应该不陌生吧,都知道MySQL有很多数据类型,包括int,char,verchar,这些也是平时建表使用比较多的类型,在MySQL 8引入了新的数据类型——JSON,它使得在数据库中存储和查询 JSON 数据变得更加容易。本文主要是来讲解MySQL新类型JSON的用法讲解。

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它使用 JavaScript 的语法来表示结构化数据。JSON 数据格式具有简单、易于阅读和编写等优点,因此在 Web 开发和 API 集成中得到广泛应用。

在 MySQL 中,JSON 数据类型可以存储和查询 JSON 格式的数据。JSON 数据可以存储在列中,并且可以通过 JSON 函数和操作符来查询和处理,相当可以在数据库字段中存储对象数据或者key-value数据。

新类型JSON用法

下面是一些关于 MySQL 中 JSON 数据类型的用法和代码示例,主要是讲解如何定义JSON类型,以及对应的增删查改

创建包含 JSON 列的表

首先,创建一个包含 JSON 列的表。在创建表时,可以指定某个列的数据类型为 JSON。例如:

CREATE TABLE `sys_dict` (`id` int(11) NOT NULL AUTO_INCREMENT,`property9` json DEFAULT NULL COMMENT '属性9',PRIMARY KEY (`id`) USING BTREE,
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='字典表';

插入 JSON 数据

可以向 JSON 列中插入 JSON 数据。插入 JSON 数据时,可以使用 JSON_OBJECT() 函数来构建 JSON 对象,或者使用其他 JSON 函数来处理 JSON 数据。例如:

INSERT INTO sys_dict (id, property9)VALUES (1, JSON_OBJECT('name', 'John', 'age', 30));

查询 JSON 数据

可以使用 JSON 函数和操作符来查询 JSON 数据。例如,可以使用 JSON_EXTRACT() 函数来提取 JSON 对象中的值,或者使用 JSON_CONTAINS() 函数来检查 JSON 对象是否包含某个值。例如:

SELECT JSON_EXTRACT(property9, '$.name') AS name FROM sys_dict WHERE id = 1;

更新 JSON 数据

我们可以使用 JSON 函数和操作符来更新 JSON 数据。例如,我们可以使用 JSON_SET() 函数来设置 JSON 对象中的值,或者使用 JSON_REPLACE() 函数来替换 JSON 对象中的值。例如:

UPDATE sys_dict SET property9= JSON_SET(property9, '$.age', 35) WHERE id = 1;

删除 JSON 数据

我们可以使用 JSON_SET() 函数来删除 JSON 对象中的值。例如:

UPDATE sys_dict  SET property9 = JSON\_SET(property9,'$.name',null)WHERE id =1;

查询某个key对应的值,把key_name换成实际要查询的key值就行,比如name

SELECT property9 ->'$.key_name' AS value  
FROM sys_dict  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/650399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT容器分类与QSet应用

一.QT容器分类 Qt提供了多种容器类,大致可以分为以下几类: 1.顺序容器:这类容器按照线性顺序(如列表或数组)存储元素。例如,QList, QLinkedList, QVector, QStack, 和 QQueue。 2.关联容器:这…

LLM应用开发与落地:基于上下文的文本信息检测与提取

最近一直用LLM解决各种各样的问题,感觉已经脱离不了LLM了。每次使用LLM解决一个之前解决不了的问题,或者大大提升我的工作效率的时候,我内心都小小会激动一下。我想这是只通过看文章或只是研究AI理论感受不到的小确幸。我也因此更加确信LLM是…

react-jss书写样式

目录 react-jss的使用 react-jss的使用 实现组件化样式、动态样式、避免样式冲突 npm install react-jss yarn add react-jss// 使用 import React from react; import { createUseStyles } from react-jss;const useStyles createUseStyles({myButton: {color: green,margi…

Kotlin MultiPlatform:构建跨平台应用的未来

Kotlin MultiPlatform:构建跨平台应用的未来 1 引言 1.1 Kotlin MultiPlatform简介 Kotlin MultiPlatform(简称KMP)是一种由JetBrains开发的跨平台开发解决方案,它建立在Kotlin语言之上。KMP允许开发者使用一套Kotlin代码来构建…

【2024】Docker部署Redis

1.说明: 因为容器实例的运行是有生命周期的,一些redis的备份、日志和配置文件什么的最好还是放在服务器本地。这样当容器删除时,我们也可以保留备份和日志文件。所以先在本地服务器安装redis并配置文件设置。下面是安装步骤: 2.安装步骤 1…

Jmeter性能测试: 基于JDK 21 安装 Jmeter 5.6.3

目录 一、实验 1.环境 2.JDK下载 3.Jmeter下载 4.Windows安装JDK 21 5.Windows安装Jmeter 5.6.3 6.Linux安装JDK 21 7.Linux安装Jmeter 5.6.3 二、问题 1. Linux 的profile、bashrc、bash_profile文件有哪些区别 一、实验 1.环境 (1)主机 表…

Android源码设计模式解析与实战第2版笔记(二)

第二章 应用最广的模式 — 单例模式 单例模式的定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式的使用场景 确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应…

压电式、电磁式蜂鸣器设计电路

蜂鸣器常用分类从两方面 声源类型:压电蜂鸣器( Piezoceramic Element Buzzers )、电磁蜂鸣器( Magnetic Buzzers ) 驱动类型:有源蜂鸣器( Indicators )、无源蜂鸣器( Transducers ) 一、电磁式蜂鸣器 无源电磁式设计电路 电磁蜂鸣器的线圈类似于电感&am…

“文心一言”揭秘:智能语言模型的新里程碑

前文 在数字化、信息化的浪潮中,人工智能(AI)技术如同一匹黑马,不断刷新着我们对科技发展的认知。其中,智能语言模型作为AI领域的一大分支,更是引领着自然语言处理(NLP)技术的革新。…

web前端项目-动画特效【附源码】

文章目录 一:赛车游戏动画HTML源码:JS源码:CSS源码:(1)normalize.css(2)style.css 二:吉普车动画演示HTML源码:CSS源码:(1&#xff09…

ARM Cortex-A 内核的运行模式切换

ARM Cortex-A 内核的运行模式切换 ARM Cortex-A系列内核的处理器支持多种运行模式的切换。 不同的运行模式能满足不同的需求,如响应中断、运行操作系统内核、处理异常等。 目录 1 ARM Cortex-A 内核的处理器什么场景下有切换运行模式的需求 2 ARM Cortex-A 内核的处理…

【时间序列篇】基于LSTM的序列分类-Pytorch实现 part1 案例复现

系列文章目录 【时间序列篇】基于LSTM的序列分类-Pytorch实现 part1 案例复现 【时间序列篇】基于LSTM的序列分类-Pytorch实现 part2 自有数据集构建 【时间序列篇】基于LSTM的序列分类-Pytorch实现 part3 化为己用 本篇文章是对已有一篇文章的整理归纳,并对文章中…

HybridA* 论文解读

本文旨在对原论文进行翻译,对混合A*有一个大概的理解 论文题目:Practical Search Techniques in Path Planning for Autonomous Driving 1 摘要 本文描述了一个实用的路径规划算法,无人驾驶汽车在未知的环境中,障碍物通过机器人…

计算机毕业设计 | SSM 凌云招聘平台(附源码)

1,绪论 人力资源是企业产生效益、创造利润的必不可少的、最重要的资源。人作为人力资源的个体可看作是一个承载着有效知识、能力的信息单元。这样的信息单元可看作是一个为企业产生价值和利润的个体。从而使得这样的信息单元所具有的信息就是一个有价值的信息。 校…

UnityUI看向相机

注释 在项目中经常会用到名字始终看向相机,可以挂上如下代码 using UnityEngine;public class LookAtCamera : MonoBehaviour {public Camera _camera;public void Start(){_camera Camera.main;}void Update(){//transform.LookAt(transform.position _camera.…

Windows版本Node.js常见问题及操作解决方式(小白入门必备)

npm i时ERROR:reason: certificate has expired问题 https://blog.csdn.net/m0_73360677/article/details/135774500 # 1.取消ssl验证;npm config set strict-ssl false#这个方法一般可以直接解决问题,如不能请尝试第二种方法# 2.更换npm镜像源&#x…

day34WEB 攻防-通用漏洞文件上传黑白盒审计逻辑中间件外部引用

目录 一,白盒审计-Finecms-代码常规-处理逻辑 黑盒思路:寻找上传点抓包修改突破获取状态码及地址 审计流程:功能点-代码文件-代码块-抓包调试-验证测试 二,白盒审计-CuppaCms-中间件-.htaccess 三,白盒审计-Metin…

银行数据仓库体系实践(11)--数据仓库开发管理系统及开发流程

数据仓库管理着整个银行或公司的数据,数据结构复杂,数据量庞大,任何一个数据字段的变化或错误都会引起数据错误,影响数据应用,同时业务的发展也带来系统不断升级,数据需求的不断增加,数据仓库需…

adb测试冷启动和热启动 Permission Denial解决

先清理日志 adb shell logcat -c 打开手机模拟器中的去哪儿网,然后日志找到包名和MainActivity adb shell logcat |grep Main com.Qunar/com.mqunar.atom.alexhome.ui.activity.MainActivity 把手机模拟器的去哪儿的进程给杀掉 执行 命令 adb shell am start -W…

专业133总分400+上海交通大学819考研经验分享上交819电子信息与通信工程

今年专业819信号系统与信号处理133,总分400,如愿考上梦中上海交通大学,通过自己将近一年的复习,实现了人生中目前为止最大的逆袭(自己本科学校很普通),总结自己的复习经历,希望可以给…