SQL Server原生支持的JSON數(shù)據(jù)類型
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
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
我們可以把每列中顯示的最大字符數(shù) 設(shè)置為8192 Root Key
使用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字句)
更多關(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://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)文章
正在查詢... |