XQuery 言語リファレンス (SQL Server)

適用対象:yesSQL Server (サポートされているすべてのバージョン)

Transact-SQLは、xml データ型のクエリに使用される XQuery 言語のサブセットサポートしています。 この XQuery の実装は、XQuery の 2004 年 7 月の作業ドラフトに合わせて調整されています。 言語は、すべての主要なデータベース ベンダー World Wide Web コンソーシアム Microsoft も参加して、World Wide Web コンソーシアム (W3C) によって開発中です。 W3C 仕様は W3C の推奨事項になる前に将来の改訂が行う可能性があります。ため、この実装は最終的な推奨事項とは異なる場合があります。 このトピックでは、このトピックでサポートされている XQuery のサブセットのセマンティクスと構文について説明SQL Server。

詳細については、 W3C XQuery 1.0 言語仕様に関するページを参照してください

XQuery は、構造化または半構造化 XML データに対してクエリを実行できる言語です。 データベース エンジン で提供される xml データ型のサポートにより、ドキュメントをデータベースに格納し、XQuery を使用してクエリを実行できます。

XQuery は既存の XPath クエリ言語に基づいており、イテレーションの向上、結果の並べ替えの向上、および必要な XML の構築機能のサポートが追加されています。 XQuery は XQuery データ モデルで動作します。 これは XML ドキュメントの抽象化であり、型指定または型指定を解除できる XQuery の結果です。 型情報は W3C XML Schema 言語によって提供される型に基づきます。 使用できる入力情報がない場合、XQuery はデータを型指定されていないデータとして処理します。 これは、XPath バージョン 1.0 で XML を処理する方法と似ています。

xml 型の変数または列に格納されている XML インスタンスに対してクエリを実行するには、 xml データ型メソッドを使用します。 たとえば、xml 型の変数を宣言し、 xml データ型の query() メソッドを使用してクエリ 実行できます。

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) データ型での xmldata 型のサポートデータベース エンジンこのデータ型に対して使用できるメソッドについて説明します。 xml データ 型は、XQuery 式が実行される入力 XQuery データ モデルを形成します。
XML スキーマ コレクション (SQL Server) データベースに格納されている XML インスタンスを型指定する方法について説明します。 つまり、XML スキーマ コレクションを xml 型の列 に関連 付けできます。 列に格納されているインスタンスはすべて検証され、コレクション内のスキーマに対して型指定され、XQuery の型情報が提供されます。

Note

このセクションの構成は、W3C (World Wide Web Consortium) 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 データ型に対する XQuery のその他のサンプル XQuery の追加サンプルを提供します。

参照

XML データ (SQL Server)
XML スキーマ コレクション (SQL Server)
XML ドキュメントの一括インポートと一括エクスポートの例 (SQL Server)