Справочник по языку XQuery (SQL Server)

Применимо к:SQL Server

Transact-SQL поддерживает подмножество языка XQuery, используемого для запроса типа данных XML . Эта реализация XQuery совпадает с рабочим эскизом XQuery на июль 2004 г. Язык разрабатывается консорциумом World Wide Web Consortium (W3C) с участием всех основных поставщиков баз данных, а также корпорации Майкрософт. Так как спецификации W3C могут быть подвержены изменениям в будущем, перед тем как стать рекомендациями W3C, эта реализация может отличаться от конечной рекомендации. В этом разделе описаны семантика и синтаксис подмножества XQuery, поддерживаемого в SQL Server.

Дополнительные сведения см. в спецификации языка W3C XQuery 1.0.

XQuery является языком, который может выполнять запросы к структурированным или полуструктурированным XML-данным. Благодаря поддержке типа xml-данных, предоставленной в ядро СУБД, документы можно хранить в базе данных, а затем запрашивать с помощью XQuery.

Язык XQuery основан на существующем языке запросов XPath с дополнительной улучшенной поддержкой итераций, результатов сортировки и возможности конструировать необходимые структуры XML. Язык XQuery работает с моделью данных XQuery. Это абстракция XML-документов и результатов XQuery, которые могут быть типизированными и нетипизированными. Сведения о типе основываются на типах, предоставляемых языком XML-схем W3C. Если нет доступных сведений по типам, 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')  

В следующем примере запрос указывается в столбце "Инструкции" типа XML в таблице ProductModel в базе данных AdventureWorks.

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 . Метод query() типа данных XML используется для указания XQuery.

В следующей таблице перечислены связанные разделы, которые помогут понять реализацию XQuery в ядре СУБД.

Раздел Description
XML-данные (SQL Server) Объясняет поддержку типа xml-данныхв ядре СУБД и методов, которые можно использовать для этого типа данных. Тип данных XML формирует входную модель данных XQuery, в которой выполняются выражения XQuery.
Коллекции XML-схем (SQL Server) Описывается, как хранящиеся в базе данных экземпляры XML могут быть типизированы. Это означает, что можно связать коллекцию схем XML с столбцом типа XML . Все экземпляры, хранящиеся в столбце, проверяются и типизируются схемой в коллекции и предоставляют типизированные сведения для XQuery.

Заметка

Организация этого раздела основана на спецификации рабочего эскиза XQuery корпорации World Wide Web Consortium (W3C). Некоторые диаграммы, приведенные в этом разделе, взяты из спецификации. В этом разделе сравнивается реализация Microsoft XQuery со спецификацией W3C, описывается, чем Microsoft XQuery отличается от W3C, и указывается, какие возможности W3C не поддерживаются. Спецификация W3C доступна по адресу http://www.w3.org/TR/2004/WD-xquery-20040723.

В этом разделе

Статья Description
Основы XQuery Приводится общий обзор основных понятий XQuery, а также вычисления выражений (статический и динамический контекст), атомизации, действительного логического значения, системы типов XQuery, последовательного сравнения типов и обработки ошибок.
Выражения XQuery Описываются основные выражения XQuery, выражения пути, выражения последовательности, логические выражения и выражения арифметического сравнения, конструкция XQuery, выражения FLWOR, условные и количественные выражения, а также различные выражения типов последовательностей.
Модули и прологи (XQuery) Введение в XQuery.
Функции XQuery для типа данных XML Описывается список поддерживаемых функций XQuery.
Операторы XQuery для типа данных XML Описываются поддерживаемые операторы XQuery.
Дополнительные образцы запросов XQuery для типа данных XML Приводятся дополнительные образцы запросов XQuery.

См. также

XML-данные (SQL Server)
Коллекции XML-схем (SQL Server)
Примеры массового импорта и экспорта XML-документов (SQL Server)