日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL中 JSON 数据类型应用

發布時間:2025/3/12 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL中 JSON 数据类型应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

今天接觸到mysql中json數據類型,之前不知道有這個類型,今天學習一下。

JSON我相信大家都已經很熟悉了,但在 MySQL中,直至 5.7 版本中,才正式引入 JSON數據類型。在次之前,我們通常使varchar或text數據類型存儲JSON格式數據。

如何使用JSON?

在這一章節,不再具體介紹JSON格式以及語法,我們來介紹一下,在MySQL中如何創建JSON數據列。 語法:

create table t_base_data( id bigint(20) not null primary key auto_increment, content json )

新增數據:

insert into t_base_data (content)values('{"blog": "https://blog.csdn.net/qq_24549805", "account": "anzy"}');

注意:

  • JSON列存儲的必須是JSON格式數據,否則會報錯。([SQL]insert into t_base_data (content)values(’{blog": “https://blog.csdn.net/qq_24549805”, “account”: “anzy”}’);
    [Err] 3140 - Invalid JSON text: “Missing a name for object member.” at position 1 in value for column ‘t_base_data.content’.)
  • JSON數據類型是沒有默認值的。
  • 更新數據:

    UPDATE t_base_data SET `content` = '{"blog":"測試更新啦","account":"pine"}' WHERE `id` = 1;

    查詢數據:

    SELECT * from t_base_data; select JSON_EXTRACT(content,'$.blog'),JSON_EXTRACT(content,'$.account') from t_base_data;

    返回結果如圖:

    可以看出JSON被解析拆分,但對于字符串會保留雙引號,這種是利用函數方法進行JSON提取的,還可以利用虛列virtual

    select JSON_EXTRACT(content,'$.blog'),JSON_EXTRACT(content,'$.account'),JSON_EXTRACT(content,'$.age') from t_base_data;

    有了虛列后就可以直接用虛列作為條件查詢

    explain select blog from t_base_data where blog = 'https://blog.csdn.net/qq_24549805'; select blog from t_base_data where blog = '"https://blog.csdn.net/qq_24549805"'

    通過執行計劃可以看出是否走索引和where條件,對于虛列還可以增加索引,就像普通的列一樣,不過更新時不需要對虛列再進行更新,直接更新JSON的內容后,虛列會同步更新,因為虛列其實就是個引用,不會冗余存儲

    增加虛列索引的SQL:

    alter table t_base_data add index index_virtual (blog);

    再用執行計劃查看是否走索引

    explain select blog from t_base_data where blog = 'https://blog.csdn.net/qq_24549805';

    從結果上看已經走索引了,優化效果達到。

    大家盡量每一步sql都執行一下看看結果,有助于理解。

    總結

    以上是生活随笔為你收集整理的MySQL中 JSON 数据类型应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。