Справочник по языку 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 , представленной в Компонент Database Engine , документы могут храниться в базе данных, а затем запрашиваться с помощью 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')  

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

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

Раздел Описание
Данные XML (SQL Server) Описание поддержки типа данных XML в Компонент Database Engine методах и методов, которые можно использовать для этого типа данных. Тип данных 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)