XQuery-Sprachreferenz (SQL Server)
Gilt für: SQL Server
Transact-SQL unterstützt eine Teilmenge der XQuery-Sprache, die zum Abfragen des XML-Datentyps verwendet wird. Diese XQuery-Implementierung orientiert sich am Arbeitsentwurf für XQuery (Juli 2004). Diese Sprache wird zurzeit vom W3C (World Wide Web Consortium) unter Mitwirkung aller großen Datenbankhersteller und Microsoft entwickelt. Da die W3C-Spezifikationen möglicherweise überarbeitet werden, bevor eine W3C-Empfehlung ausgesprochen wird, kann sich diese Implementierung von der endgültigen Empfehlung unterscheiden. In diesem Thema werden die Semantik und Syntax der Teilmenge von XQuery beschrieben, die in SQL Server unterstützt wird.
Weitere Informationen finden Sie in der W3C XQuery 1.0-Sprachspezifikation.
XQuery ist eine Sprache, die strukturierte oder halbstrukturierte XML-Daten abfragen kann. Mit der in der Datenbank-Engine bereitgestellten XML-Datentypunterstützung können Dokumente in einer Datenbank gespeichert und dann mithilfe von XQuery abgefragt werden.
XQuery basiert auf der vorhandenen XPath-Abfragesprache. Dieser wurde Unterstützung für bessere Iteration, bessere Sortierergebnisse und eine Funktion zum Erstellen des erforderlichen XML hinzugefügt. XQuery wird auf der Grundlage des XQuery-Datenmodells ausgeführt. Dabei handelt es sich um eine Abstraktion von XML-Dokumenten und die XQuery-Ergebnisse, die typisiert oder nicht typisiert sein können. Die Typinformationen basieren auf den von der W3C XML-Schemasprache bereitgestellten Typen. Wenn keine Typisierungsinformationen verfügbar sind, behandelt XQuery die Daten so, als wären sie nicht typisiert. XPath, Version 1.0, verarbeitet XML auf ähnliche Weise.
Um eine XML-Instanz abzufragen, die in einer Variablen oder Spalte des XML-Typs gespeichert ist, verwenden Sie die XML-Datentypmethoden. Sie können z. B. eine Variable vom XML-Typ deklarieren und sie mithilfe der Query() -Methode des XML-Datentyps abfragen.
DECLARE @x xml
SET @x = '<ROOT><a>111</a></ROOT>'
SELECT @x.query('/ROOT/a')
Im folgenden Beispiel wird die Abfrage anhand der Spalte "Anweisungen" des XML-Typs in der ProductModel-Tabelle in der AdventureWorks-Datenbank angegeben.
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
Die XQuery enthält die Namespacedeklaration, declare namespace``AWMI=...
und den Abfrageausdruck. /AWMI:root/AWMI:Location[@LocationID=10]
Beachten Sie, dass die XQuery für die Spalte "Anweisungen" des XML-Typs angegeben wird. Die Query()-Methode des XML-Datentyps wird verwendet, um die XQuery anzugeben.
In der folgenden Tabelle sind die verwandten Themen aufgeführt, die ihnen dabei helfen können, die Implementierung von XQuery in der Datenbank-Engine zu verstehen.
Thema | Beschreibung |
---|---|
XML-Daten (SQL Server) | Erläutert die Unterstützung für den XML-Datentypin der Datenbank-Engine und die Methoden, die Sie für diesen Datentyp verwenden können. Der XML-Datentyp bildet das XQuery-Eingabedatenmodell , auf dem die XQuery-Ausdrücke ausgeführt werden. |
XML-Schemaauflistungen (SQL Server) | Beschreibt, wie die in einer Datenbank gespeicherten XML-Instanzen typisiert werden können. Dies bedeutet, dass Sie eine XML-Schemaauflistung der XML-Typspalte zuordnen können. Alle in der Spalte gespeicherten Instanzen werden in der Auflistung anhand des Schemas überprüft und typisiert und stellen die Typinformationen für XQuery bereit. |
Hinweis
Die Organisation dieses Abschnitts basiert auf der Arbeitsentwurfspezifikation für XQuery des World Wide Web Consortium (W3C). Einige der in diesem Abschnitt bereitgestellten Diagramme stammen aus dieser Spezifikation. In diesem Abschnitt wird die Microsoft XQuery-Implementierung mit der W3C-Spezifikation verglichen, es werden die Unterschiede zwischen XQuery und W3C beschrieben und die nicht unterstützten W3C-Funktionen genannt. Die W3C-Spezifikation ist unter http://www.w3.org/TR/2004/WD-xquery-20040723.
In diesem Abschnitt
Thema | Beschreibung |
---|---|
XQuery-Grundlagen | Stellt eine grundlegende Übersicht über die XQuery-Konzepte und die Auswertung von Ausdrücken (statischer und dynamischer Kontext), die Atomarmachung, effektive boolesche Werte, das XQuery-Typsystem, Sequenztypzuordnung und Fehlerbehandlung zur Verfügung. |
XQuery Expressions (XQuery-Ausdrücke) | Beschreibt primäre XQuery-Ausdrücke, path-Ausdrücke, sequence-Ausdrücke, arithmetische Vergleiche und logische Ausdrücke, die XQuery-Erstellung, FLWOR-Ausdrücke, bedingte und quantifizierte Ausdrücke sowie verschiedene Ausdrücke für Sequenztypen. |
Modules and Prologs (XQuery) (Module und Prologe (XQuery)) | Beschreibt den XQuery-Prolog. |
XQuery Functions against the xml Data Type (XQuery-Funktionen für den xml-Datentyp) | Beschreibt eine Liste der unterstützten XQuery-Funktionen. |
XQuery Operators Against the xml Data Type (XQuery-Operatoren für den xml-Datentyp) | Beschreibt unterstützte XQuery-Operatoren. |
Additional Sample XQueries Against the xml Data Type (Zusätzliches Beispiel für XQuery-Abfragen für den XML-Datentyp) | Stellt zusätzliche XQuery-Beispiele bereit. |
Weitere Informationen
XML-Daten (SQL Server)
XML-Schemaauflistungen (SQL Server)
Beispiele für den Massenimport und -export von XML-Dokumenten (SQL Server)