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

適用対象:SQL Server

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

詳細については、「 W3C XQuery 1.0 言語仕様」を参照してください

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

注意

このセクションの構成は、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)