javascript
sqlserver慕课_SqlServer 操作 JSON
Intro
Sql Server 從 2016 開始支持了一些 json 操作,最近的項(xiàng)目里也是好多地方直接用字段直接存成了 json ,需要了解一下怎么在 Sql Server 中操作 JSON.
JSON支持適用于 SqlServer 2016 及以上版本 和 Azure SQL Database。
SqlServer 中內(nèi)置了一些 JSON 相關(guān)的方法:
可以判斷一段字符串是否是標(biāo)準(zhǔn)的 json(ISJSON)
可以直接查詢數(shù)據(jù)成 json 格式(FOR JSON PATH) 類似于之前的查詢一個(gè) xml (FOR XML PATH),
查詢一個(gè) json 對象的值(JSON_VALUE)
查詢一個(gè) json 數(shù)組值
更新一段JSON的內(nèi)容,修改 JSON 對象里的屬性值,刪除 JSON 對象里的某一個(gè)屬性,增加屬性
解析一段 json 內(nèi)容 (OPENJSON)
JSON 操作
JSON 存儲
數(shù)據(jù)庫里 JSON 存儲一般用 NVARCHAR(MAX) 類型來保存,如果一定是 JSON 形式的數(shù)據(jù)可以設(shè)置一個(gè)約束,可以通過 ISJSON 來給字段加約束,詳情參考
JSON 屬性加索引
要給 JSON 對象的某個(gè)屬性加字段時(shí),需要增加一個(gè)虛擬的列,然后在這個(gè)列中建立一個(gè)索引。CopyALTER?TABLE?Sales.SalesOrderHeaderADD?vCustomerName?AS?JSON_VALUE(Info,'$.Customer.Name')CREATE?INDEX?idx_soh_json_CustomerNameON?Sales.SalesOrderHeader(vCustomerName)
JSON 基本操作Copy{????"name":?"小明",????"info":?{????????"address":?{????????????"province":?"河南省",????????????"city":?"鄭州市",????????????"district":?"鄭東新區(qū)"
},????????"hobbies":?[????????????"籃球",????????????"足球",????????????"乒乓球"
]
}
}Copy--?查詢某一屬性值SET?@name?=?JSON_VALUE(@jsonInfo,?'$.name');SET?@city?=?JSON_VALUE(@jsonInfo,?'$.info.address.city');--?查詢數(shù)組SET?@hobbies?=?JSON_QUERY(@jsonInfo,?'$.info.hobbies');--?增加屬性?tempPropSET?@jsonInfo?=?JSON_MODIFY(@jsonInfo,?'tempProp',?1);--?刪除屬性?tempPropSET?@jsonInfo?=?JSON_MODIFY(@jsonInfo,?'tempProp',?null);
Reference
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的sqlserver慕课_SqlServer 操作 JSON的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么设置跨网段的路由器不同网段连接的路由
- 下一篇: concat合并的数组会有顺序么_JS