次の方法で共有


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) データベース エンジンでの 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)