中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數據庫JSON類型的用法、意義、內置函數

發布時間:2021-09-10 13:35:12 來源:億速云 閱讀:1477 作者:chen 欄目:數據庫

這篇文章主要講解了“MySQL數據庫JSON類型的用法、意義、內置函數”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL數據庫JSON類型的用法、意義、內置函數”吧!

概述

在MySQL數據庫中,直到5.7這個版本,開始引入JSON數據類型,在此之前如果想在表中保存JSON格式類型的數據,則需要依靠varchar或者text之類的數據類型,如果在低于5.7版本的數據庫中使用了JSON類型來建表,顯然是不會成功的。

MySQL數據庫JSON類型的用法、意義、內置函數

如何使用JSON類型

1、建表

在MySQL中創建具有JSON數據列的表,其實和數據類型沒有太大區別,具體舉例如下:

CREATE TABLE tab_base_info (  id BIGINT NOT NULL PRIMARY KEY auto_increment,  content json );

2、新增數據

插入一條語句,注意看JSON數據列的內容:

INSERT INTO tab_base_info(content) VALUES ('{"author": "HWB", "toutiao": "https://www.toutiao.com/a6712764513814315528"}');
MySQL數據庫JSON類型的用法、意義、內置函數

這里需要提醒的是:

  • JSON列存儲的數據要么是NULL,要么必須是JSON格式數據,否則會報錯。

  • JSON數據類型是沒有默認值的(聲明時"DEFAULT NULL")。

JSON數據類型意義

其實,沒有JSON數據類型的支持,我們一樣可以通過varchar類型或者text等類型來保存這一格式的數據,但是,為什么還要專門增加這一數據格式的支持呢?其中肯定有較varchar或者text來存儲此類型更優越的地方。

  • 保證了JSON數據類型的強校驗,JSON數據列會自動校驗存入此列的內容是否符合JSON格式,非正常格式則報錯,而varchar類型和text等類型本身是不存在這種機制的。

  • MySQL同時提供了一組操作JSON類型數據的內置函數。

  • 更優化的存儲格式,存儲在JSON列中的JSON數據會被轉成內部特定的存儲格式,允許快速讀取。

  • 可以基于JSON格式的特征支持修改特定的鍵值。(即不需要把整條內容拿出來放到程序中遍歷然后尋找替換再塞回去,MySQL內置的函數允許你通過一條SQL語句就能搞定)

MySQL關于JSON的內置函數

MySQL關于JSON數據格式的操作提供了很多高效率的內置函數,我們可以從MySQL官網上找到很詳細的介紹和使用說明,下面貼一張JSON函數的指南:

MySQL數據庫JSON類型的用法、意義、內置函數

其實從JSON功能介紹的主頁也可以看到,這些內置函數支持我們創建、查找、替換和返回值等相關的操作,像我們替換指定內容的操作就可以使用JSON_REPLACE()這個函數,不過***實現通過純SQL語句執行最終的內容替換,還需要通過執行UPDATE語句,比如:

UPDATE tab_base_info SET content = json_replace(content, '$.author', "xiaoming") WHERE id = 1;
MySQL數據庫JSON類型的用法、意義、內置函數

其中“$.***”表示找到JSON內容中匹配的修改字段。

感謝各位的閱讀,以上就是“MySQL數據庫JSON類型的用法、意義、內置函數”的內容了,經過本文的學習后,相信大家對MySQL數據庫JSON類型的用法、意義、內置函數這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽阳市| 西安市| 定西市| 文化| 吐鲁番市| 巨鹿县| 板桥市| 阿合奇县| 湛江市| 衢州市| 五寨县| 荃湾区| 城固县| 卓资县| 尉氏县| 疏附县| 池州市| 普宁市| 余庆县| 萨迦县| 西盟| 嘉峪关市| 霍城县| 依安县| 太仆寺旗| 伊通| 丹寨县| 阳山县| 永安市| 兖州市| 康定县| 浦东新区| 瓦房店市| 内丘县| 浦县| 唐河县| 景德镇市| 永和县| 大竹县| 佳木斯市| 昌都县|