MySQL中处理JSON数据:大数据分析的新方向

news/2024/11/14 22:04:48/

1. JSON 数据类型

        1.1、JSON 类型:MySQL 支持使用 JSON 类型来存储 JSON 文档。
        1.2、存储空间:存储 JSON 文档所需的空间与存储 LONGBLOB 或 LONGTEXT 类似。
        1.3、默认值:在 MySQL 8.0.13 之前,JSON 列不能有非空的默认值

2. JSON 数据的操作

插入 JSON 数据:

INSERT INTO table_name (json_column) VALUES ('{"key": "value"}');

查询 JSON 数据(提取值):

SELECT json_column->'$.key' FROM table_name;

查询 JSON 数据(修改值):

UPDATE table_name SET json_column = json_column->'{"key": "new_value"}';

JSON 函数:

        JSON_EXTRACT:提取 JSON 对象中的值。
        JSON_SET:设置 JSON 对象中的值。
        JSON_INSERT:向 JSON 对象中插入新键值对。
        JSON_REPLACE:替换 JSON 对象中的值。
        JSON_REMOVE:删除 JSON 对象中的键。
        JSON_CONTAINS:检查 JSON 对象是否包含特定值。
        JSON_LENGTH:返回 JSON 数组的长度。
        JSON_DEPTH:返回 JSON 对象的最大深度。
        JSON_OBJECTAGG:用于聚合 JSON 对象。
        JSON_ARRAYAGG:用于聚合 JSON 数组。

3. JSON 索引

创建 JSON 索引(单路径索引):

CREATE INDEX idx_json ON table_name (json_column->'$.key');

创建 JSON 索引(多路径索):

CREATE INDEX idx_json ON table_name USING SPATIAL (json_column->'$.location');

使用 JSON 索引:索引可以显著提高涉及 JSON 数据的查询性能

4. JSON 数据的存储与检索:

        存储:JSON 数据可以存储在 JSON 类型的列中。
        检索:可以使用 JSON 函数来检索和操作 JSON 数据

5. JSON 数据的使用场景:

        灵活性:适用于列不固定的场景,如日志数据、配置文件等。
        大数据分析:可以方便地存储和查询结构化的 JSON 数据,适用于大数据分析。

示例

假设有一个表 users 包含 JSON 类型的列 data,存储用户的个人信息。

创建表

CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,data JSON NOT NULL
);

插入数据

INSERT INTO users (data) VALUES ('{"name": "Alice", "age": 30}');

查询数据

SELECT * FROM users WHERE data->'$.age' > 25;

更新数据

UPDATE users SET data = JSON_SET(data, '$.age', 31) WHERE id = 1;


   


http://www.ppmy.cn/news/1513928.html

相关文章

[CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - 视觉模型篇

[CLIP-VIT-L Qwen] 多模态大模型学习笔记 - 5 前情提要源码解读(visualModel类)init函数整体含义逐行解读 get_image_features函数(重构)整体含义逐行解读 main函数整体含义逐行解读 参考repo:WatchTower-Liu/VLM-learning; url:…

004快速排序-python实现

插入排序原理讲解(以升序为例) 每一轮选取一个参考点,通常为序列的第一个元素或者是序列的最后一个元素,我们此处选取序列的第一个元素作为参考点,将其存入key中,接下来 用key表示参考点的元素。每一轮中&a…

某211电子硕,为什么选择学fpga?

据国海证券发布的快速崛起的国内FPGA龙头报告。 FPGA 作为半定制化、可编程的集成电路,具备高度灵活性,下游主要应用于通信、工业等领域,二者合计占比超七成。国内FPGA市场规模全球占比约为38%,是FPGA主要的消费国。 从人才结构来…

十四、模拟实现 list 类

Ⅰ . list 基本框架的实现 01 结点的建立 为了实现链表&#xff0c;我们首先要做的应该是建立结点 为了和真正的 list 进行区分&#xff0c;我们仍然在自己的命名空间内实现 代码实现&#xff1a; namespace yxt {// 建立结点template<class T>struct ListNode{T _d…

每日一问:深入理解MySQL中的锁机制

每日一问&#xff1a;深入理解MySQL中的锁机制 MySQL作为最流行的关系型数据库管理系统之一&#xff0c;其锁机制在保证数据一致性和并发性方面发挥了关键作用。MySQL的锁机制复杂且多样&#xff0c;涵盖了表级锁、行级锁、共享锁、排他锁、意向锁等多个层面。理解这些锁及其互…

CSS的:required和:optional伪类:提升表单可访问性与用户体验

在Web表单设计中&#xff0c;清晰地指示哪些字段是必填的&#xff0c;哪些是可选的&#xff0c;对于提升用户体验和表单的可访问性至关重要。CSS提供了两个非常有用的伪类&#xff1a;:required和:optional&#xff0c;它们允许开发者为必填和非必填的表单输入字段应用特定的样…

达梦表字段、字段类型,精度比对及更改字段SQL生成

达梦表字段、字段类型&#xff0c;精度比对及更改字段SQL生成&#xff1a; 依赖 <!-- 达梦 Connector --><dependency><groupId>com.dameng</groupId><artifactId>DmJdbcDriver18</artifactId><version>8.1.3.62</version>&l…

JavaEE:http请求 | 同步与异步请求 | 跨域问题 | axios框架 有这一篇就够!

前言 HTTP请求是现代Web开发中前后端沟通的基础。在开发过程中&#xff0c;开发者面临同步与异步请求的选择、跨域问题的挑战以及选择合适的HTTP库等问题。同步请求简单却往往阻塞用户界面&#xff0c;而异步请求能提高效率但增加复杂性。跨域问题则源自浏览器的同源政策&…