다음을 통해 공유


XQuery 언어 참조(데이터베이스 엔진)

Transact-SQL은 xml 데이터 형식을 쿼리하는 데 사용되는 XQuery 언어의 하위 집합을 지원합니다. 이 XQuery 구현은 XQuery에 대한 2004년 7월 초안을 따릅니다. 이 언어는 Microsoft를 비롯한 주요 데이터베이스 공급업체의 참여 하에 W3C(World Wide Web Consortium)에서 개발 중에 있습니다. W3C 사양은 W3C 권장 사양이 되기 전에 향후 개정을 거칠 수 있기 때문에 이 구현은 최종 권장 사양과 다를 수 있습니다. 이 항목에서는 SQL Server에서 지원되는 XQuery의 하위 집합에 대한 의미 및 구문에 대해 간단히 설명합니다.

자세한 내용은 W3C XQuery 1.0 언어 사양을 참조하십시오.

XQuery는 구조화되었거나 반구조화된 XML 데이터를 쿼리할 수 있는 언어입니다. 데이터베이스 엔진에서 제공되는 xml 데이터 형식에 대한 지원을 통해 문서를 데이터베이스에 저장한 다음 XQuery를 사용하여 쿼리할 수 있습니다.

XQuery는 기존의 XPath 쿼리 언어를 기반으로 더 나은 반복 성능 및 정렬 결과를 위한 지원이 추가되었으며 필요한 XML을 생성할 수 있는 기능이 지원됩니다. XQuery는 XQuery 데이터 모델에서 작동합니다. 이러한 모델은 XML 문서에 대한 추상적 표현이며 XQuery 결과는 형식화되거나 형식화되지 않을 수 있습니다. 유형 정보는 W3C XML 스키마 언어에서 제공되는 유형을 기반으로 합니다. 형식화 정보가 제공되지 않은 경우 XQuery는 데이터를 형식화되지 않은 것으로 처리합니다. 이는 XPath 버전 1.0에서 XML을 처리하는 방법과 비슷합니다.

xml 유형의 변수 또는 열에 저장된 XML 인스턴스를 쿼리하기 위해서는 xml 데이터 형식 메서드를 사용합니다. 예를 들어 xml 유형의 변수를 선언하고 xml 데이터 형식의 query() 메서드를 사용하여 이를 쿼리할 수 있습니다.

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

다음 예에서 쿼리는 AdventureWorks 데이터베이스의 ProductModel 테이블에 있는 xml 유형의 Instructions 열에 대해 지정되어 있습니다.

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 namespaceAWMI=...와 쿼리 식인 /AWMI:root/AWMI:Location[@LocationID=10]이 포함됩니다.

XQuery는 xml 유형의 Instructions 열에 대해 지정되어 있습니다. xml 데이터 형식의 query() 메서드는 XQuery를 지정하는 데 사용됩니다.

다음 표에서는 데이터베이스 엔진의 XQuery 구현 방식을 이해하는 데 도움이 될 수 있는 관련 항목들이 나열되어 있습니다.

항목

설명

SQL Server에서 XML 구현

데이터베이스 엔진의 xml 데이터 형식에 대한 지원과 이 데이터 형식에 대해 사용할 수 있는 메서드에 대해 설명합니다. xml 데이터 형식은 XQuery 식이 실행되는 입력 XQuery 데이터 모델을 형성합니다.

서버에서 XML 스키마 컬렉션 관리

데이터베이스에 저장된 XML 인스턴스를 형식화하는 방법을 설명합니다. 즉, xml 유형의 열과 XML 스키마 컬렉션을 연결할 수 있습니다. 열에 저장된 모든 항목은 유효성이 검사되고 컬렉션에 있는 스키마에 대해 형식화되며 XQuery에 대한 유형 정보를 제공합니다.

AdventureWorks 데이터베이스의 xml 데이터 형식 표시

xml 유형의 열과 AdventureWorks 데이터베이스에서 여기에 저장되는 항목에 대해 설명합니다. 대부분의 XQuery 예제는 AdventureWorks 데이터베이스와 여기에 포함된 xml 유형의 열에 대해 작성됩니다. XML 인스턴스를 이해하면 쿼리를 이해하는 데 도움이 될 수 있습니다.

[!참고]

이 섹션의 구성은 W3C(World Wide Web Consortium) XQuery 초안 사양을 기반으로 합니다. 이 섹션에서 제공되는 일부 다이어그램은 이 사양에서 가져온 것입니다. 이 섹션에서는 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 프롤로그에 대해 설명합니다.

xml 데이터 형식에 대한 XQuery 함수

지원되는 XQuery 함수 목록에 대해 설명합니다.

xml 데이터 형식에 대한 XQuery 연산자

지원되는 XQuery 연산자에 대해 설명합니다.

xml 데이터 형식에 대한 추가 예제 XQuery

추가 XQuery 예제를 제공합니다.