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)