Xquery 語言參考 (SQL Server)
適用於:SQL Server
Transact-SQL 支援用於查詢 xml 數據類型的 XQuery 語言子集。 這個 XQuery 實作與 2004 年 7 月 XQuery 的工作草稿一致。 該語言由萬維網聯合會(W3C)開發,所有主要資料庫供應商也參與其中Microsoft。 由於 W3C 規格可能會在成為 W3C 建議之前進行未來的修訂,因此此實作可能與最終建議不同。 本主題概述 SQL Server 中支援的 XQuery 子集語意和語法。
如需詳細資訊,請參閱 W3C XQuery 1.0 語言規格。
XQuery 是可以查詢結構化或半結構化 XML 數據的語言。 透過 資料庫引擎 中提供的 xml 資料類型支援,檔可以儲存在資料庫中,然後使用 XQuery 進行查詢。
XQuery 是以現有的 XPath 查詢語言為基礎,支援加入更好的反覆專案、更好的排序結果,以及建構必要 XML 的能力。 XQuery 會在 XQuery 數據模型上運作。 這是 XML 檔的抽象概念,而且 XQuery 結果可以輸入或不具型別。 類型資訊是以 W3C XML 架構語言所提供的類型為基礎。 如果沒有輸入資訊可用,XQuery 會將數據視為不具類型。 這類似於 XPath 1.0 版如何處理 XML。
若要查詢儲存在 xml 類型的變數或資料行 中的 XML 實例,您可以使用 xml 數據類型方法。 例如,您可以使用 xml 資料類型的 query() 方法來宣告 xml 類型的變數並加以查詢。
DECLARE @x xml
SET @x = '<ROOT><a>111</a></ROOT>'
SELECT @x.query('/ROOT/a')
在下列範例中,會針對 AdventureWorks 資料庫中 ProductModel 數據表中 xml 類型的 Instructions 數據行指定查詢。
SELECT Instructions.query('declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
/AWMI:root/AWMI:Location[@LocationID=10]
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
XQuery 包含命名空間宣告、 declare namespace``AWMI=...
與查詢表示式 /AWMI:root/AWMI:Location[@LocationID=10]
請注意,XQuery 是針對 xml 類型的 Instructions 資料行所指定。 xml 資料類型的 query() 方法可用來指定 XQuery。
下表列出有助於瞭解 資料庫引擎 中 XQuery 實作的相關主題。
主題 | 說明 |
---|---|
XML 資料 (SQL Server) | 說明 資料庫引擎 中 xml數據類型的支援,以及您可以針對此數據類型使用的方法。 xml 數據類型會形成執行 XQuery 表達式的輸入 XQuery 數據模型。 |
XML 結構描述集合 (SQL Server) | 描述如何輸入儲存在資料庫中的 XML 實例。 這表示您可以將 XML 架構集合與 xml 類型資料行產生關聯。 儲存在數據行中的所有實例都會根據集合中的架構進行驗證並輸入,並提供 XQuery 的類型資訊。 |
注意
本節的組織是以萬維網聯合會 (W3C) XQuery 工作草稿規格為基礎。 本節中提供的一些圖表取自該規格。 本節將Microsoft XQuery 實作與 W3C 規格進行比較,說明Microsoft XQuery 與 W3C 有何不同,並指出不支援哪些 W3C 功能。 W3C 規格可在 http://www.w3.org/TR/2004/WD-xquery-20040723取得。
本節內容
主題 | 說明 |
---|---|
XQuery 基本概念 | 提供 XQuery 概念的基本概觀,以及表示式評估(靜態和動態內容)、原子化、有效的布爾值、XQuery 類型系統、序列類型比對和錯誤處理。 |
XQuery 表達式 | 描述 XQuery 主要運算式、路徑表示式、序列運算式、算術比較和邏輯表達式、XQuery 建構、FLWOR 運算式、條件式和數量表達式,以及序列類型上的各種表達式。 |
模組和初構 (XQuery) | 描述 XQuery 初構。 |
針對 xml 資料類型的 XQuery 函式 | 描述支援的 XQuery 函式清單。 |
針對 xml 資料類型的 XQuery 運算子 | 描述支援的 XQuery 運算符。 |
針對 xml 數據類型的其他範例 XQueries | 提供其他 XQuery 範例。 |
另請參閱
XML 資料 (SQL Server)
XML 結構描述集合 (SQL Server)
大量匯入與匯出 XML 文件的範例 (SQL Server)