advertisement

XQuery y XPath for SQL Server 2012 itpros dc_chapter6

0 %
100 %
advertisement
Information about XQuery y XPath for SQL Server 2012 itpros dc_chapter6
Technology

Published on February 28, 2014

Author: juliancastiblanco

Source: slideshare.net

Description

en esta presentación encontrará todo lo que necesita saber sobre XML en el motor de base de datos SQL Server 2012,2008,2005. Este material fue diseñado para adquirir los conocimientos y presentar el examen 70-461 Querying SQL Server 2012
advertisement

Querying Microsoft SQL Server 2012 Exam 70-461 Capítulo 6 – XML Julián Castiblanco P. http://julycastiblanco.blogspot.com/ Julian_castiblancop@hotmail.com MCT-MCSA-MCITP-MCTS SQL Server 2008/2005 Líder ITPros-DC

• • • • Ingeniero de Diseño & Automatización Electrónica Especialista en Gerencia y Tecnologías de Información MCT-MCSA-MCITP-MCTS en SQL SERVER Synergy TPC SAS como consultor especializado en bases de datos SQL Server Julián Castiblanco • • • • Ingeniero de Sistemas Especialista en Teleinformática MCP SQL SERVER 2012 Terpel como ingeniero de infraestructura IT - DBA Andrés Useche

Material de trabajo Windows Server 2012 trial http://www.microsoft.com/en-us/download/details.aspx?id=11093 SQL Server 2012 with SP1 trial http://www.microsoft.com/en-us/download/details.aspx?id=29066 AdventureWorks for SQL Server 2012 http://msftdbprodsamples.codeplex.com/releases/view/55330 Training kit SQL Server Querying Microsoft SQL Server 2012 – exam 70-461 http://www.amazon.com/Training-Kit-Exam-70-461Microsoft/dp/0735666059/ref=sr_1_1?ie=UTF8&qid=1359206206&sr=81&keywords=querying+microsoft+sql+server+2012+training+kit+exam+70-461

Agenda • Recuperación de XML mediante FOR XML • Fragmentación de XML mediante OPENXML • Introducción a XQuery

Cláusula FOR XML • Devuelve XML en lugar de filas y columnas • Se puede configurar para que devuelva atributos, elementos y esquema • Beneficia a las aplicaciones cliente que funcionan con XML

FOR XML RAW SELECT b.Name Territorio, C.City, COUNT(*) AS numorders FROM sales.SalesOrderHeader AS A INNER JOIN SALES.SalesTerritory AS B ON A.TerritoryID=b.TerritoryID INNER JOIN [Person].[Address] AS C ON A.ShipToAddressID=C.AddressID INNER JOIN [Person].[StateProvince] AS D ON C.StateProvinceID=D.StateProvinceID WHERE b.Name='France' GROUP BY b.Name, C.City FOR XML RAW

FOR XML AUTO SELECT b.Name Territorio, C.City, COUNT(*) AS numorders FROM sales.SalesOrderHeader AS A INNER JOIN SALES.SalesTerritory AS B ON A.TerritoryID=b.TerritoryID INNER JOIN [Person].[Address] AS C ON A.ShipToAddressID=C.AddressID INNER JOIN [Person].[StateProvince] AS D ON C.StateProvinceID=D.StateProvinceID WHERE b.Name='France' GROUP BY b.Name, C.City FOR XML AUTO

FOR XML EXPLICIT SELECT top 10 1 AS Tag, NULL AS Parent, SalesOrderID AS [Invoice!1!InvoiceNo!Element], OrderDate AS [Invoice!1!Date!Element] FROMSales.SalesOrderheader FOR XML EXPLICIT

FOR XML PATH -----------------------------------FOR XML PATH ---------------------------------SELECT vC.BusinessEntityID "@customerID" ,sc.AccountNumber "@accountNumber" ,FirstName "Customer/FirstName" ,LastName "Customer/Lastname" FROMSALES.vIndividualCustomer as vC INNER JOIN Sales.Customer as sc ON vC.BusinessEntityID= sc.PersonID FOR XML PATH

FUNCIONES ADICIONALES ELEMENT TYPE Coloca un elemento Raiz Decidir si se mostraran valores en nulo Cambia atributos por Elementos Informa al motor que la información generada es de tipo XML ROOT ABSENT|XSINIL

Demostración

Agenda • Recuperación de XML mediante FOR XML • Fragmentación de XML mediante OPENXML • Introducción a XQuery

Fragmentación de XML mediante OPENXML • OpenXML le permite consultar información de tipo XML y guardarlo en filas y columnas. • Openxml es un proveedor de filas así que puede utilizarse el select o el select into en la sentencia

Fragmentación de XML mediante OPENXML Sp_xml _preparedocument Xml Document OPENXML flags byte Document Object Model (DOM) MSXML parser (Msxmlsql.dll) Dinamic rowset representation Sp_xml_removedocument Liberación de memoria Representación dinámica del grupo de datos

Fragmentación de XML mediante OPENXML DECLARE @xmlDOC xml set @xmlDOC =' <hojadevida> ELEMENTOS <datosbasicos nombre="Julián Castiblanco P" edad="31" ATRIBUTOS correo="juliancastiblancop@gmail.com"/> <estudios> <estudio> <institucion>Colegio Mayor de San Bartolomé</institucion> <titulo>Bachiller Académico</titulo> <fechaterminacion>1999</fechaterminacion> TEXTOS </estudio> <estudio> <institucion>Universidad de la Salle</institucion> <titulo>Ingeniero de Diseño Automatización electronica</titulo> <fechaterminacion>2005</fechaterminacion> </estudio> <estudio> <institucion>Universidad Externado de Colombia</institucion> <titulo>Especialista en Gerencia y Tecnologías de Información</titulo> <fechaterminacion>2011</fechaterminacion> </estudio> </estudios> </hojadevida>'

Fragmentación de XML mediante OPENXML declare @doc_handle int EXECUTE sp_xml_preparedocument @doc_handle OUTPUT, @xmlDOC SELECT @doc_handle • El XML es cargado en memoria, dado que varios podrían estar en memoria la variable @doc_handle maneja el identificado con que este documento puede ser consultado

Fragmentación de XML mediante OPENXML SELECT institucion,titulo,fechaTerminacion FROM OPENXML(@doc_handle ,'/hojadevida/estudios/estudio',2) WITH( Institucion varchar(90) 'institucion', titulo varchar(90) 'titulo', fechaTerminacion int 'fechaterminacion' ) • Con la sentencia OPENXML Recorro el xml cargado en memoria y a través de la sentencia WITH los elemento hijos que quiero mapear como columnas http://technet.microsoft.com/en-us/library/ms187897.aspx

Demostración

Agenda • Recuperación de XML mediante FOR XML • Fragmentación de XML mediante OPENXML • Introducción a XQuery

Introducción a XQuery

Introducción a XQuery Root InventarioCarrefo ur ElementNode Productosdeaseo ElementNode Producto Element Nombre Text Node Atribute node Element Tamaño Text Node Element PrecioDetal TextNode

Introducción a XQuery Namespace <InventarioCarrefour xmlns:p="http://www.inventario.com"> <ProductosDeAseo> Parent Node <Producto> <nombre>Jabón FAB</nombre> Child Nodes <Tamano>Bolsa por 5 libras</Tamano> <PrecioDetal>7890</PrecioDetal> <UnidadesDisponibles>230</UnidadesDisponibles> Text Node </Producto> <Producto> <nombre>Shampoo Pantene</nombre> <Tamano>1000ml</Tamano> <PrecioDetal>13000</PrecioDetal> <UnidadesDisponibles>34</UnidadesDisponibles> </Producto> <Producto> <nombre>Cepillo de Piso</nombre> <Tamano>No aplica</Tamano> <PrecioDetal>980</PrecioDetal> <UnidadesDisponibles>1200</UnidadesDisponibles> </Producto> </ProductosDeAseo> <encargado nombre="William Barrera" depto="AdministracionRecursos" /> </InventarioCarrefour> Root

Introducción a XQuery declarativo W3C estándar FLWOR Case Sensitive Usa Xpath http://www.w3schools.com/xpath/xpath_intro.asp

Introducción a XQuery INPUT • Doc() documento xml • Collection() varios xmls OUTPUT • Query: xml • Exists : bit • Value: valor especifico • Nodes: salida tipo tabla • Modify: manipular el xml Esquema XML • Basado en esquema ó no tipado.

Introducción a XQuery Xpath Abreviaciones • “default” • @ • // , / • * Common Functions • Position() • Count() • Round() • Contains() • Substring()

Introducción a XQuery INPUT • Doc() documento xml • Collection() varios xmls OUTPUT • Query: xml • Exists : bit • Value: valor especifico • Nodes: salida tipo tabla • Modify: manipular el xml Esquema XML • Basado en esquema o no tipado.

Modificación de XML con XQuery insert delete Replace value of

Demostración

Introducción a Xquery-FLWOR FLWOR • For • Let • Where • Order by • Return Permite especificar en que nodo del xml quiero iniciar mi consulta

Introducción a Xquery-FLWOR FLWOR • For • Let • Where • Order by • Return Se utiliza para asignar valor a una variable, combinado con funciones, puedo devolver una función que entre el número de nodos de un tipo dentro del xml.

Introducción a Xquery-FLWOR FLWOR • For • Let • Where • Order by • Return Al igual que en el transact SQL convencional, esta función me permite filtrar la información que debo devolver.

Introducción a Xquery-FLWOR FLWOR • For • Let • Where • Order by • Return Permite definir un ordenamiento diferente en el xml consultado. Por ejemplo que reorganice los nodos de salida, basado en el valor de un atributo.

Introducción a Xquery-FLWOR FLWOR • For • Let • Where • Order by • Return Es el equivalente al SELECT en transact sql y define la información que va a ser retornada por la consulta.

Demostración

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

XML DATA and XQUERY IN SQL SERVER - Software

Download XML DATA and XQUERY IN SQL SERVER. ... XQuery y XPath for SQL Server 2012 itpros dc ... DQS is SQL Server 2012 gives your users tools ...
Read more

XQuery Language Reference (SQL Server)

Windows Server 2012 ... and syntax of the subset of XQuery that is supported in SQL Server. ... XQuery is based on the existing XPath query ...
Read more

XML Support in Microsoft SQL Server 2005

Windows Server 2012 ... XML Support in Microsoft SQL Server ... Our implementation is aligned with the July 2004 draft of XQuery. XQuery includes XPath 2 ...
Read more

Can I return multiple columns with SQL Server XQuery?

... columns-with-sql-server-xquery?forum=sqlxml Question ... INT, y INT GO DROP ... PostTime>2012-12-01T11:01:55.953 ...
Read more

How to Enable XPath ancestor Function in SQL Server 2008

... how-to-enable-xpath-ancestor-function-in-sql-server-2008?forum=sqlxml ... in SQL 2012 RTM and ... Potter" with valid XQuery ...
Read more

sql server - Getting the following sibling in an XPath ...

... contains a specific text element using XQuery on MS SQL Server. ... XPath when “following” axis is not supported. ... using xpath in SQL Server 2012.
Read more

Using XML with time, date, datetime2, and datetimeoffset ...

Windows Server 2012 R2; ... the following SQL Server data types: time, date, datetime2, and datetimeoffset. ... type in SQL Server. Any XQuery value ...
Read more

Querying Microsoft SQL Server 2012 读书笔记:查询和 ...

SQL Server 并不支持所有的XQuery 特性.比如XQuery 的用户自 ... xdt The namespace for XPath and XQuery data ... 例如, /x/y[1] ...
Read more