久综合色-久综合网-玖草影视-玖草资源在线-亚洲黄色片子-亚洲黄色片在线观看

Hello! 歡迎來到小浪云!


在 MySQL 中使用 JSON


avatar
小浪云 2025-01-09 87

在現代應用開發中,有效管理半結構化數據至關重要。mysql 5.7 版本及以上版本內置了對 json 數據類型的支持,為關系型數據庫中存儲、查詢和操作這類數據提供了強有力的工具。本文將介紹 mysql 提供的核心 json 函數,并結合實際案例進行講解,幫助您快速上手。

為什么選擇 mysqlJSON 功能?

在關系型數據庫中使用 JSON 數據類型,可以簡化半結構化或層級數據的處理流程,帶來諸多優勢:

  • 靈活性: JSON 結構支持動態、層級數據的靈活存儲。
  • 內置函數: MySQL 提供高效的 JSON 數據查詢、更新和驗證函數。
  • 集成性: 可以將關系型數據與 JSON 對象結合,實現混合數據模型。
  1. 創建 JSON 數據

利用 JSON_OBJECT() 和 JSON_ARRAY() 函數,可以方便地構建 JSON 對象或數組。

示例:

SELECT      JSON_OBJECT('id', 1, 'name', 'Alice', 'roles', JSON_ARRAY('admin', 'editor')) AS json_data;

輸出:

{"id": 1, "name": "Alice", "roles": ["admin", "editor"]}
  1. 存儲 JSON 數據

使用 JSON 數據類型定義數據庫列,即可存儲 JSON 數據。

示例:

CREATE TABLE users (     id INT AUTO_INCREMENT PRIMARY KEY,     details JSON NOT NULL );  INSERT INTO users (details)  VALUES ('{"name": "Bob", "age": 30, "roles": ["viewer", "editor"]}');
  1. 從 JSON 數據中提取數據

MySQL 提供多種函數用于從 JSON 文檔中提取數據:

  • JSON_EXTRACT():使用 JSONPath 表達式獲取指定值。
  • -> 運算符:JSON_EXTRACT() 的簡寫形式。

示例:

SELECT      JSON_EXTRACT(details, '$.name') AS name,     details->'$.age' AS age FROM users;

輸出:

在 MySQL 中使用 JSON

  1. 修改 JSON 數據

以下函數用于更新或添加 JSON 數據元素:

  • JSON_SET():插入或更新鍵值對
  • JSON_INSERT():僅當鍵不存在時插入。
  • JSON_REPLACE():僅更新已存在的鍵值對

示例:

UPDATE users SET details = JSON_SET(details, '$.city', 'New York') WHERE id = 1;  SELECT details FROM users;

輸出:

{"name": "Bob", "age": 30, "roles": ["viewer", "editor"], "city": "New York"}
  1. 刪除鍵值對

使用 JSON_REMOVE() 函數刪除 JSON 文檔中的元素。

示例:

UPDATE users SET details = JSON_REMOVE(details, '$.roles') WHERE id = 1;  SELECT details FROM users;

輸出:

{"name": "Bob", "age": 30, "city": "New York"}
  1. 在 JSON 數據中搜索

JSON_CONTAINS() 函數用于檢查 JSON 文檔是否包含特定值。

示例:

SELECT      JSON_CONTAINS(details, '"New York"', '$.city') AS has_city FROM users;

輸出:

在 MySQL 中使用 JSON

  1. JSON 數據聚合

JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 函數可以將查詢結果聚合為 JSON 結構。

示例:

SELECT      JSON_ARRAYAGG(name) AS names FROM (     SELECT JSON_EXTRACT(details, '$.name') AS name FROM users ) AS subquery;

輸出:

["Bob"]
  1. 驗證 JSON 數據

JSON_VALID() 函數用于檢查字符串是否為有效的 JSON 數據。

示例:

SELECT      JSON_VALID('{"key": "value"}') AS is_valid,     JSON_VALID('invalid json') AS is_invalid;

輸出:

在 MySQL 中使用 JSON

  1. 格式化 JSON 輸出

JSON_PRETTY() 函數將 JSON 數據格式化為易于閱讀的格式。

示例:

SELECT JSON_PRETTY(details) AS pretty_json FROM users;

輸出:

{     "name": "Bob",     "age": 30,     "city": "New York" }

其他 JSON 函數

MySQL 提供了豐富的 JSON 函數,本文僅介紹了部分常用函數。其他函數包括:JSON_ARRAY_APPEND()、JSON_ARRAY_INSERT()、JSON_CONTAINS_PATH()、JSON_DEPTH()、JSON_KEYS()、JSON_LENGTH()、JSON_MERGE_PATCH()、JSON_MERGE_PRESERVE()、JSON_OVERLAPS()、JSON_QUOTE()、JSON_SEARCH()、JSON_STORAGE_FREE()、JSON_STORAGE_SIZE()、JSON_TABLE()、JSON_TYPE()、JSON_UNQUOTE() 等。

MySQL 的 JSON 函數為關系型數據庫中半結構化數據的管理提供了強大的支持,簡化了 JSON 數據的存儲、查詢和操作,為數據庫設計提供了新的思路。 熟練掌握這些函數,將極大地提高開發效率。

相關閱讀

主站蜘蛛池模板: 毛片成人| 欧美一级高清毛片aaa | 三级毛片免费 | 欧美日韩一区二区三区视频播 | 日本wwwwwwwww | 国产成人精品日本亚洲专一区 | 国产在线一区二区三区 | 美女又黄又免费 | 99久久精品久久久久久清纯 | 国产欧美另类久久久精品免费 | 污到下面流水的视频 | 日韩午夜在线 | 日本精品一区二区三区在线视频 | 台湾三级香港三级在线理论 | 亚洲第3页| 日本不卡一区在线 | 欧美国产精品久久 | 亚洲男同可播放videos | 国产小说 | 欧美成人在线免费 | 亚洲欧美在线视频 | 色拍拍噜噜噜aⅴ在线观看 色青青草原桃花久久综合 色婷婷91 | 国产午夜亚洲精品 | 美女国产福利视频 | 久久中文字幕亚洲精品最新 | 欧美日韩一区在线观看 | 国产午夜a理论毛片在线影院 | 亚洲高清视频在线 | 精品国产一区二区三区不卡蜜臂 | 88av视频在线观看 | 亚洲一区天堂 | 一级一级毛片免费播放 | 日本在线视频不卡 | 久久91亚洲精品中文字幕 | 一级做a爰片性色毛片男 | 国产一区二区三区四区五区tv | 免费一看一级毛片全播放 | 欧美日韩一级黄色片 | 色综合视频一区二区观看 | 中国人免费观看高清在线观看二区 | 久久婷五月天 |