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

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Transact-SQLTransact-SQLподдерживает подмножество языка XQuery, используемого для запроса типа данных XML .supports a subset of the XQuery language that is used for querying the xml data type. Эта реализация XQuery совпадает с рабочим эскизом XQuery на июль 2004 г.This XQuery implementation is aligned with the July 2004 Working Draft of XQuery. Язык разрабатывается консорциумом World Wide Web Consortium (W3C) с участием всех основных поставщиков баз данных, а также корпорации Майкрософт.The language is under development by the World Wide Web Consortium (W3C), with the participation of all major database vendors and also Microsoft. Так как спецификации W3C могут быть подвержены изменениям в будущем, перед тем как стать рекомендациями W3C, эта реализация может отличаться от конечной рекомендации.Because the W3C specifications may undergo future revisions before becoming a W3C recommendation, this implementation may be different from the final recommendation. Данный подраздел охватывает семантику и синтаксис поднабора XQuery, который поддерживается в SQL ServerSQL Server.This topic outlines the semantics and syntax of the subset of XQuery that is supported in SQL ServerSQL Server.

Дополнительные сведения см. в спецификации языка W3C XQuery 1,0.For more information, see the W3C XQuery 1.0 Language Specification.

XQuery является языком, который может выполнять запросы к структурированным или полуструктурированным XML-данным.XQuery is a language that can query structured or semi-structured XML data. Благодаря поддержке типа данных XML Компонент Database EngineDatabase Engine, представленной в, документы могут храниться в базе данных, а затем запрашиваться с помощью XQuery.With the xml data type support provided in the Компонент Database EngineDatabase Engine, documents can be stored in a database and then queried by using XQuery.

Язык XQuery основан на существующем языке запросов XPath с дополнительной улучшенной поддержкой итераций, результатов сортировки и возможности конструировать необходимые структуры XML.XQuery is based on the existing XPath query language, with support added for better iteration, better sorting results, and the ability to construct the necessary XML. Язык XQuery работает с моделью данных XQuery.XQuery operates on the XQuery Data Model. Это абстракция XML-документов и результатов XQuery, которые могут быть типизированными и нетипизированными.This is an abstraction of XML documents, and the XQuery results that can be typed or untyped. Сведения о типе основываются на типах, предоставляемых языком XML-схем W3C.The type information is based on the types provided by the W3C XML Schema language. Если нет доступных сведений по типам, XQuery считает данные нетипизированными.If no typing information is available, XQuery handles the data as untyped. Это похоже на то, как XPath версии 1.0 обрабатывает XML.This is similar to how XPath version 1.0 handles XML.

Для запроса экземпляра XML, хранящегося в переменной или столбце типа XML , используются методы типа данных XML.To query an XML instance stored in a variable or column of xml type, you use the xml Data Type Methods. Например, можно объявить переменную типа XML и запросить ее с помощью метода query () типа данных XML .For example, you can declare a variable of xml type and query it by using the query() method of the xml data type.

DECLARE @x xml  
SET @x = '<ROOT><a>111</a></ROOT>'  
SELECT @x.query('/ROOT/a')  

В следующем примере запрос задается для столбца Instructions типа XML в таблице ProductModel в базе данных AdventureWorks.In the following example, the query is specified against the Instructions column of xml type in ProductModel table in the AdventureWorks database.

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].The XQuery includes the namespace declaration, declare namespace``AWMI=..., and the query expression, /AWMI:root/AWMI:Location[@LocationID=10].

Обратите внимание, что XQuery задается для столбца Instructions типа XML .Note that the XQuery is specified against the Instructions column of xml type. Метод query () типа данных XML используется для указания запроса XQuery.The query() method of the xml data type is used to specify the XQuery.

В следующей таблице перечисляются соответствующие темы, которые могут помочь в понимании реализации XQuery в Компонент Database EngineDatabase Engine.The following table lists the related topics that can help in understanding the implementation of XQuery in the Компонент Database EngineDatabase Engine.

РазделTopic DescriptionDescription
SQL Server (XML-данных)XML Data (SQL Server) Описание поддержки типа данных XMLв методах Компонент Database EngineDatabase Engine и методов, которые можно использовать для этого типа данных.Explains the support for the xmldata type in the Компонент Database EngineDatabase Engine and the methods you can use against this data type. Тип данных XML формирует модель входных данных XQuery, на которой выполняются выражения XQuery.The xml data type forms the input XQuery data model on which the XQuery expressions are executed.
Коллекции XML-схем (SQL Server)XML Schema Collections (SQL Server) Описывается, как хранящиеся в базе данных экземпляры XML могут быть типизированы.Describes how the XML instances stored in a database can be typed. Это означает, что коллекцию схем XML можно связать со столбцом типа XML .This means you can associate an XML schema collection with the xml type column. Все экземпляры, хранящиеся в столбце, проверяются и типизируются схемой в коллекции и предоставляют типизированные сведения для XQuery.All the instances stored in the column are validated and typed against the schema in the collection and provide the type information for XQuery.

Примечание

Организация этого раздела основана на спецификации рабочего эскиза XQuery корпорации World Wide Web Consortium (W3C).The organization of this section is based on the World Wide Web Consortium (W3C) XQuery working draft specification. Некоторые диаграммы, приведенные в этом разделе, взяты из спецификации.Some of the diagrams provided in this section are taken from that specification. В этом разделе сравнивается реализация Microsoft XQuery со спецификацией W3C, описывается, чем Microsoft XQuery отличается от W3C, и указывается, какие возможности W3C не поддерживаются.This section compares the Microsoft XQuery implementation to the W3C specification, describes how Microsoft XQuery is different from the W3C and indicates what W3C features are not supported. Спецификация W3C доступна по адресу http://www.w3.org/TR/2004/WD-xquery-20040723.The W3C specification is available at http://www.w3.org/TR/2004/WD-xquery-20040723.

в этом разделеIn This Section

РазделTopic DescriptionDescription
Основы языка XQueryXQuery Basics Приводится общий обзор основных понятий XQuery, а также вычисления выражений (статический и динамический контекст), атомизации, действительного логического значения, системы типов XQuery, последовательного сравнения типов и обработки ошибок.Provides a basic overview of XQuery concepts, and also the expression evaluation (static and dynamic context), atomization, effective Boolean value, XQuery type system, sequence type matching, and error handling.
Выражения языка XQueryXQuery Expressions Описываются основные выражения XQuery, выражения пути, выражения последовательности, логические выражения и выражения арифметического сравнения, конструкция XQuery, выражения FLWOR, условные и количественные выражения, а также различные выражения типов последовательностей.Describes XQuery primary expressions, path expressions, sequence expressions, arithmetic comparison and logical expressions, XQuery construction, FLWOR expression, conditional and quantified expressions, and various expressions on sequence types.
Модули и журналы (XQuery)Modules and Prologs (XQuery) Введение в XQuery.Describes XQuery prolog.
Функции XQuery для типа данных xmlXQuery Functions against the xml Data Type Описывается список поддерживаемых функций XQuery.Describes a list of the XQuery functions that are supported.
Сравнение операторов XQuery с XML-даннымиXQuery Operators Against the xml Data Type Описываются поддерживаемые операторы XQuery.Describes XQuery operators that are supported.
Дополнительные примеры запросов на языке XQuery к XML-даннымAdditional Sample XQueries Against the xml Data Type Приводятся дополнительные образцы запросов XQuery.Provides additional XQuery samples.

См. также:See Also

SQL Server (XML-данных) XML Data (SQL Server)
Коллекции XML-схем (SQL Server) XML Schema Collections (SQL Server)
Примеры выполнения операций импорта и экспорта XML-документов (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)