欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL查詢和篩選存儲(chǔ)的JSON數(shù)據(jù)的操作方法

 更新時(shí)間:2024年01月08日 16:34:02   作者:No8g攻城獅  
MySQL是常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),為了支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和查詢,MySQL引入了對(duì)JSON數(shù)據(jù)類型的支持,JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,在現(xiàn)代應(yīng)用程序中得到了廣泛應(yīng)用,處理和存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)變得越來越重要,本文給大家介紹mysql查詢JSON數(shù)據(jù)的相關(guān)知識(shí),一起看看吧

一、背景介紹

JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,在現(xiàn)代應(yīng)用程序中得到了廣泛的應(yīng)用。處理和存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)變得越來越重要。MySQL 是一種常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),為了支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和查詢,于是 MySQL引入了對(duì)JSON數(shù)據(jù)類型的支持。

MySQL從5.7.8版本開始添加了對(duì)JSON的支持,使得我們可以在MySQL數(shù)據(jù)庫中存儲(chǔ)和查詢JSON格式的數(shù)據(jù)。本文將介紹如何使用MySQL查詢和篩選存儲(chǔ)的JSON數(shù)據(jù),并提供相應(yīng)的代碼示例。

二、支持的JSON數(shù)據(jù)類型

從MySQL 5.7.8版本開始,MySQL引入了對(duì)JSON數(shù)據(jù)類型的支持。MySQL可以存儲(chǔ)任意的JSON數(shù)據(jù),包括對(duì)象、數(shù)組、字符串等。并且MySQL還對(duì)JSON數(shù)據(jù)類型還提供了一系列的操作函數(shù)和運(yùn)算符,以便于對(duì)JSON數(shù)據(jù)進(jìn)行查詢和操作。

三、基礎(chǔ)數(shù)據(jù)

3.1 創(chuàng)建表

DROP TABLE IF EXISTS `my_table`;
CREATE TABLE `my_table`  (
  `id` int NOT NULL,
  `message` json NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

上述示例創(chuàng)建了一個(gè)名為 my_table 的表,包含一個(gè)名為 message 的JSON列。message列可以存儲(chǔ)任意的JSON數(shù)據(jù)。

3.2 插入 JSON 數(shù)據(jù)

要在JSON列中插入數(shù)據(jù),可以使用JSON函數(shù)將JSON字符串轉(zhuǎn)換為JSON數(shù)據(jù)類型。以下是一個(gè)示例:

INSERT INTO `my_table` (`id`, `message`) VALUES (1, '{\"age\": 30, \"name\": \"John\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (2, '{\"age\": 40, \"name\": \"Mary\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (3, '{\"age\": 50, \"name\": \"Tom\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (4, '{\"age\": 60, \"name\": \"Jermy\"}');

上述示例在my_table表中插入了4條記錄,其中 message 列包含一個(gè)JSON對(duì)象。

3.3 查詢 JSON 數(shù)據(jù)

可以使用->或者->>運(yùn)算符來查詢JSON數(shù)據(jù)。->運(yùn)算符返回JSON對(duì)象的屬性值,->>運(yùn)算符返回屬性值的字符串表示。

以下是兩個(gè)

查詢JSON數(shù)據(jù)的示例1:

SELECT message->'$.name' AS name FROM my_table;

結(jié)果如下:

在這里插入圖片描述

查詢示例2:

SELECT * FROM my_table WHERE JSON_EXTRACT(message, '$.age') > 40

結(jié)果如下:

在這里插入圖片描述

四、操作函數(shù)

MySQL提供了一系列的JSON數(shù)據(jù)操作函數(shù),以方便對(duì)JSON數(shù)據(jù)進(jìn)行查詢和操作。以下是一些常用的JSON數(shù)據(jù)操作函數(shù):

4.1 JSON_OBJECT

JSON_OBJECT函數(shù)用于創(chuàng)建一個(gè)JSON對(duì)象。以下是一個(gè)示例:

SELECT JSON_OBJECT('name', 'John', 'age', 30) AS message;

上述示例創(chuàng)建了一個(gè)名為 message 的JSON對(duì)象,包含name和age屬性。

在這里插入圖片描述

4.2 JSON_ARRAY

JSON_ARRAY函數(shù)用于創(chuàng)建一個(gè)JSON數(shù)組。以下是一個(gè)示例:

SELECT JSON_ARRAY('apple', 'banana', 'orange') AS fruits;

上述示例創(chuàng)建了一個(gè)名為fruits的JSON數(shù)組,包含三個(gè)元素。

在這里插入圖片描述

4.3 JSON_EXTRACT

JSON_EXTRACT函數(shù)用于提取JSON數(shù)據(jù)中的值。以下是一個(gè)示例:

SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name') AS name;

上述示例從JSON數(shù)據(jù)中提取了name屬性的值。

在這里插入圖片描述

以上只是最基本的用法,關(guān)于MySQL操作JSON數(shù)據(jù)類型的函數(shù)還有很多高級(jí)用法,等用到的時(shí)候再學(xué)。

本文完結(jié)!

到此這篇關(guān)于MySQL如何查詢和篩選存儲(chǔ)的JSON數(shù)據(jù)的文章就介紹到這了,更多相關(guān)mysql查詢JSON數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 雙向備份的實(shí)現(xiàn)方法

    MySQL 雙向備份的實(shí)現(xiàn)方法

    這篇文章主要介紹了MySQL 雙向備份的實(shí)現(xiàn)方法,即兩個(gè) MySQL 服務(wù)都是 Master,其中任意一個(gè)服務(wù)又是另一個(gè)服務(wù)的 Slave,感興趣的可以了解一下
    2019-04-04
  • MySQL循環(huán)語句之while循環(huán)測(cè)試

    MySQL循環(huán)語句之while循環(huán)測(cè)試

    MySQL有循環(huán)語句操作,while 循環(huán)、loop循環(huán)和repeat循環(huán),目前我只測(cè)試了 while 循環(huán),下面與大家分享下
    2014-07-07
  • MySQL之淺談DDL和DML

    MySQL之淺談DDL和DML

    大家好,本篇文章主要講的是MySQL之淺談DDL和DML,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • MySQL存儲(chǔ)函數(shù)以及觸發(fā)器詳解

    MySQL存儲(chǔ)函數(shù)以及觸發(fā)器詳解

    這篇文章詳細(xì)給大家介紹了MySQL-SQL存儲(chǔ)函數(shù)以及觸發(fā)器,文中有詳細(xì)的代碼示例,對(duì)我們學(xué)習(xí)MySQL有一定的幫助,感興趣的朋友可以參考閱讀下
    2023-06-06
  • mysql delete limit 使用方法詳解

    mysql delete limit 使用方法詳解

    今天研究cms系統(tǒng)的時(shí)候發(fā)現(xiàn),delete 語句后面有個(gè)limit,一直都是select查詢的時(shí)候才使用,不懂為什么要用這個(gè),正好就百度一下為大家分享下delete中使用limit方法與有點(diǎn)
    2014-11-11
  • 修改MYSQL最大連接數(shù)的3種方法分享

    修改MYSQL最大連接數(shù)的3種方法分享

    MYSQL數(shù)據(jù)庫安裝完成后,默認(rèn)最大連接數(shù)是100,一般流量稍微大一點(diǎn)的論壇或網(wǎng)站這個(gè)連接數(shù)是遠(yuǎn)遠(yuǎn)不夠的,增加默認(rèn)MYSQL連接數(shù)的方法有好幾個(gè),這里簡(jiǎn)單分享下
    2011-05-05
  • MySQL時(shí)間戳與日期格式的相互轉(zhuǎn)換

    MySQL時(shí)間戳與日期格式的相互轉(zhuǎn)換

    在MySQL數(shù)據(jù)庫中,時(shí)間戳和日期格式是常用的數(shù)據(jù)類型,在MySQL中,我們可以使用函數(shù)還相互轉(zhuǎn)換時(shí)間戳和日期格式,下面我將詳細(xì)的給大家介紹如何進(jìn)行轉(zhuǎn)換,并提供相應(yīng)的代碼示例,感興趣的小伙伴跟著小編一起來看看吧
    2024-01-01
  • Ubuntu手動(dòng)安裝mysql5.7.10

    Ubuntu手動(dòng)安裝mysql5.7.10

    這篇文章主要為大家詳細(xì)介紹了Ubuntu手動(dòng)安裝mysql5.7.10的詳細(xì)過程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • mysql中tonumber函數(shù)使用及注意事項(xiàng)

    mysql中tonumber函數(shù)使用及注意事項(xiàng)

    在MySQL中,沒有直接的TO_NUMBER函數(shù),但可以通過CAST或CONVERT實(shí)現(xiàn)字符串到數(shù)字的轉(zhuǎn)換,轉(zhuǎn)換前需明確數(shù)據(jù)類型,了解轉(zhuǎn)換語法,并注意錯(cuò)誤處理、空值處理、格式合規(guī)性和精度問題,本文介紹mysql中tonumber函數(shù)使用及注意事項(xiàng),感興趣的朋友一起看看吧
    2025-02-02
  • MySQL報(bào)錯(cuò) table “xxx” doesn‘t exit的解決

    MySQL報(bào)錯(cuò) table “xxx” doesn‘t exit的解決

    本文主要介紹了MySQL報(bào)錯(cuò) table “xxx” doesn‘t exit的解決,主要原因是英文字母大小寫敏感導(dǎo)致,下面就來介紹一下解決方法,感興趣的可以了解一下
    2023-10-10

最新評(píng)論