Справочник по языку 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 в ядро СУБД.
Раздел | Описание |
---|---|
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.
В этом разделе
Раздел | Описание |
---|---|
Основы 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)