LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL Server原生支持的JSON數(shù)據(jù)類型

admin
2024年10月1日 13:38 本文熱度 859

作者:樺仔 

10余年DBA工作經(jīng)驗(yàn),

微信:debolop

QQ交流群:740052625

公眾號(hào):數(shù)據(jù)庫(kù)實(shí)戰(zhàn)派


SQL Server 2005 開(kāi)始支持 XML 數(shù)據(jù)類型,提供原生的 XML數(shù)據(jù)類型、XML 索引以及各種管理 XML 或輸出 XML 格式的函數(shù)。

在 SQL Server 時(shí)隔 4 個(gè)主要版本之后,終于在 Microsoft Ignite 2015 大會(huì)上正式宣布,新一代的 SQL Server 2016 正式支持現(xiàn)在最流行的數(shù)據(jù)交換格式— JSON(JavaScript Object Notation)。

 

SQL Server 2016 對(duì)JSON的支持并不是增加一個(gè)JSON數(shù)據(jù)類型,而是提供一個(gè)更輕便的框架,幫助用戶在數(shù)據(jù)庫(kù)里處理JSON格式數(shù)據(jù)。

用戶不需要更變現(xiàn)有的表結(jié)構(gòu),因?yàn)镾QL Server使用NVARCHAR 數(shù)據(jù)類型來(lái)存儲(chǔ)JSON文件,并且跟現(xiàn)有技術(shù)相互兼容,比如全文搜索、列存儲(chǔ)索引、in-memory OLTP,應(yīng)用程序不需要做任何修改

 

不需要使用JSON.Net這類工具分析和處理JSON數(shù)據(jù),利用SQL Server內(nèi)置函數(shù)就可以處理JSON數(shù)據(jù),輕松將查詢結(jié)構(gòu)輸出為JSON格式,或者搜索JSON文件內(nèi)容。

 JSON AUTO 輸出JSON 格式

要將select語(yǔ)句的結(jié)果以JSON輸出,最簡(jiǎn)單的方法是在后面加上 FOR JSON AUTO

SELECT * FROM [dbo].[Client] GO
SELECT * FROM [dbo].[Client] FOR JSON AUTOGO


我們可以把每列中顯示的最大字符數(shù) 設(shè)置為8192

Root Key

如果想為FOR JSON 加上Root Key,可以使用ROOT選項(xiàng)來(lái)指定 Root Key 名稱
SELECT * FROM [dbo].[Client] FOR JSON AUTO,ROOT('SUSU')GO

使用JSON PATH 輸出JSON格式

當(dāng)想要自定義輸出JSON格式結(jié)構(gòu)的時(shí)候,必須用JSON PATH描述,若SELECT 的字段名稱相同,必須用別名方式來(lái)重新命名字段名這樣才可以繼續(xù)查詢

另外,如果字段的默認(rèn)值為NULL,那么輸出JSON時(shí),JSON會(huì)忽略null的只。如果要顯示null值,可以加上INCLUDE_NULL_VALUES 選項(xiàng)(同樣適用于JSON AUTO字句)

select * from  [dbo].[Client]
--FOR JSON PATHSELECT * FROM [dbo].[Client] WHERE ClientID =2FOR JSON PATH
[{"ClientID":2,"Firstname":"Peter","Lastname":"Nielsen","Birthdate":"1998-05-19T00:00:00","Email":"Peter@126.com","PhoneNumber":"+86-16326269674","Birthplace":"Stockholm","SocialSecurityNumber":"1901531234"}]
--FOR JSON PATHSELECT * FROM [dbo].[Client] WHERE ClientID =4FOR JSON PATH,INCLUDE_NULL_VALUES
[{"ClientID":4,"Firstname":"kade","Lastname":null,"Birthdate":"1980-01-06T00:00:00","Email":"Lotte@SOHU.com","PhoneNumber":"+86-16326269674","Birthplace":"Aalborg","SocialSecurityNumber":"1061234"}]

更多關(guān)于JSON的功能

SQL Server 對(duì)于JSON的功能支持已經(jīng)非常豐富,例如內(nèi)置處理JSON格式化的函數(shù)

ISJSON(判斷是否是JSON格式)、JSON_VALUE(分析JSON文件并提取出值) 、OPENJSON(將JSON文件轉(zhuǎn)換為普通數(shù)據(jù)表)

總結(jié)

SQL Server 自 2016 版本起正式支持 JSON 格式,為開(kāi)發(fā)者提供了更強(qiáng)大的數(shù)據(jù)處理能力。盡管沒(méi)有引入專門的 JSON 數(shù)據(jù)類型,SQL Server 利用 NVARCHAR 來(lái)存儲(chǔ)和處理 JSON 數(shù)據(jù),并通過(guò)內(nèi)置的函數(shù)和查詢選項(xiàng)簡(jiǎn)化了對(duì) JSON 數(shù)據(jù)的操作。使用 FOR JSON AUTO 和 FOR JSON PATH 等功能,開(kāi)發(fā)者可以方便地將查詢結(jié)果輸出為 JSON 格式,或自定義輸出結(jié)構(gòu)。SQL Server 還支持對(duì) JSON 數(shù)據(jù)的處理和格式化,如通過(guò) ISJSON、JSON_VALUE、OPENJSON 等函數(shù)輕松解析和操作 JSON 數(shù)據(jù)。這些功能讓 SQL Server 成為處理現(xiàn)代數(shù)據(jù)交換格式的強(qiáng)大工具,同時(shí)保持了與現(xiàn)有技術(shù)的兼容性。


參考文章
https://learn.microsoft.com/zh-cn/sql/relational-databases/json/json-data-sql-server?view=sql-server-ver16

https://www.cnblogs.com/weihanli/p/sqlserver-json-support.html

https://blog.miniasp.com/post/2023/01/07/Using-JSON-in-SQL-Server


該文章在 2024/10/2 8:59:21 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
中日韩国内精品视频 | 亚洲国产精品美女久久久久 | 日日拍夜夜嗷嗷叫国产 | 天天看片国产区 | 中文字幕在线精品乱码高清视频 | 中文字幕婷婷久久 |