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

Hello! 歡迎來到小浪云!


在 MySQL 中使用 JSON


avatar
小浪云 2025-01-09 105

在現代應用開發中,有效管理半結構化數據至關重要。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 數據的存儲、查詢和操作,為數據庫設計提供了新的思路。 熟練掌握這些函數,將極大地提高開發效率。

相關閱讀

主站蜘蛛池模板: yy6080福利午夜免费观看 | 色欧美hdvideosxs4k | 国产三级精品久久三级国专区 | 美国免费三片在线观看 | 久草视频资源站 | 国产日产高清欧美一区二区三区 | 日本又黄又爽又免费 | 亚洲综合视频 | 国产欧美日韩综合精品一区二区 | 国产精品一区亚洲一区天堂 | 亚洲乱码国产一区网址 | 日本在线观看免费视频 | 亚洲毛片免费在线观看 | 自怕偷自怕亚洲精品 | 天堂在线www网亚洲 天堂在线视频网站 | 日本暖暖在线视频 | 理伦毛片| 99在线观看精品 | 国产精品99r8免费视频2022 | 俄罗斯小屁孩cao大人免费 | 国产成人在线播放视频 | 在线免费观看精品 | 精品欧美一区二区三区精品久久 | 欧美特黄一片aa大片免费看 | 69xxxx欧美老师 | 中文字幕国产一区 | 一级毛片中文字幕 | 欧美午夜在线 | 成人免费一级片 | 成年女人看片免费视频播放器 | 欧美日韩一区二区三区在线播放 | 日本三级在线观看中文字 | 性视频网站在线 | 中国美女隐私无遮挡免费视频 | 国产精品久久国产三级国电话系列 | 91精品国 | 欧美偷拍小视频 | 99久久精品国产一区二区成人 | 天堂素人搭讪系列嫩模在线观看 | 18年大片免费在线观看 | 一级毛片免费观看视频 |