Справочник по языку 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 ОписаниеDescription
Данные XML (SQL Server)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 ОписаниеDescription
Основы 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 для типа данных XMLXQuery Operators Against the xml Data Type Описываются поддерживаемые операторы XQuery.Describes XQuery operators that are supported.
Дополнительные образцы запросов XQuery для типа данных XMLAdditional Sample XQueries Against the xml Data Type Приводятся дополнительные образцы запросов XQuery.Provides additional XQuery samples.

См. такжеSee Also

Данные XML (SQL Server) 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)