SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4
Anthony Sotolongo
 
Espacio de nombres system.Data.Oledb
Espacio de nombres system.Data.OledbEspacio de nombres system.Data.Oledb
Espacio de nombres system.Data.Oledb
frank yordi tejada sanchez
 
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
 ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
jhsanchez24
 
MySql
MySqlMySql
MySql
CEST
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5
juliomacr
 
Symfony 2 CMF
Symfony 2 CMFSymfony 2 CMF
Symfony 2 CMF
Ignacio Martín
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
Iker Canarias
 
Taller programación web ajax con jquery
Taller programación web  ajax con jqueryTaller programación web  ajax con jquery
Taller programación web ajax con jquery
Pablo Galeana Bailey
 
Abf leccion 18
Abf leccion 18Abf leccion 18
Abf leccion 18victdiazm
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4cognos_uie
 
S8-POO-4.2 BDD
S8-POO-4.2 BDDS8-POO-4.2 BDD
Diapositivas transact sql
Diapositivas transact sqlDiapositivas transact sql
Diapositivas transact sql
TAPIA SILVA EVELINA
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
ana leydi linares serrano
 
ADO.NET
ADO.NETADO.NET
Jdbc
JdbcJdbc

La actualidad más candente (18)

Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4
 
Espacio de nombres system.Data.Oledb
Espacio de nombres system.Data.OledbEspacio de nombres system.Data.Oledb
Espacio de nombres system.Data.Oledb
 
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
 ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
ESPACIO DE NOMBRES SYSTEM.DATA.OLEDB
 
MySql
MySqlMySql
MySql
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
MySQL de 1995 a 5.5
MySQL de 1995 a 5.5MySQL de 1995 a 5.5
MySQL de 1995 a 5.5
 
Symfony 2 CMF
Symfony 2 CMFSymfony 2 CMF
Symfony 2 CMF
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Taller programación web ajax con jquery
Taller programación web  ajax con jqueryTaller programación web  ajax con jquery
Taller programación web ajax con jquery
 
Abf leccion 18
Abf leccion 18Abf leccion 18
Abf leccion 18
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
S8-POO-4.2 BDD
S8-POO-4.2 BDDS8-POO-4.2 BDD
S8-POO-4.2 BDD
 
Diapositivas transact sql
Diapositivas transact sqlDiapositivas transact sql
Diapositivas transact sql
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
DDL
DDLDDL
DDL
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Ddl 00
Ddl 00Ddl 00
Ddl 00
 
Jdbc
JdbcJdbc
Jdbc
 

Destacado

Eddaflyteleport3
Eddaflyteleport3Eddaflyteleport3
Eddaflyteleport3
eddafly
 
Developing for Office 2007
Developing for Office 2007Developing for Office 2007
Developing for Office 2007
Ezequiel Jadib
 
Conalep tlalnepantla 1
Conalep tlalnepantla 1Conalep tlalnepantla 1
Conalep tlalnepantla 1
abbigali
 
AnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networksAnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networks
Manabu Tsukada
 
To a nice person
To a nice personTo a nice person
To a nice person
enfresdezh
 
Sickle cell disease” (SCD): a project of curative treatment and informatics...
Sickle cell disease” (SCD): a project of  curative treatment and  informatics...Sickle cell disease” (SCD): a project of  curative treatment and  informatics...
Sickle cell disease” (SCD): a project of curative treatment and informatics...
Claudio Tancini
 
LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...
LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...
LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...Mobilosoft
 
Building An Online Marketing Strategy
Building An Online Marketing StrategyBuilding An Online Marketing Strategy
Building An Online Marketing Strategy
brighteyes
 
Conectivismo - REDEI
Conectivismo - REDEIConectivismo - REDEI
Conectivismo - REDEI
John Cano
 
Depot Square Unified Downtown Development Project Special Permit Application
Depot Square Unified Downtown Development Project Special Permit ApplicationDepot Square Unified Downtown Development Project Special Permit Application
Depot Square Unified Downtown Development Project Special Permit ApplicationCSPM Group
 
Oportunidades de Negocios en la Web Social
Oportunidades de Negocios en la Web SocialOportunidades de Negocios en la Web Social
Oportunidades de Negocios en la Web Social
Paul Fervoy
 
Galicia de los mil rios
Galicia de los mil riosGalicia de los mil rios
Galicia de los mil rios
Robin Hood
 
Proyecto Aulas Virtuales 2
Proyecto Aulas Virtuales 2Proyecto Aulas Virtuales 2
Proyecto Aulas Virtuales 2Apoyoav
 
Thankful for creative minds, Twitter, beer and...
Thankful for creative minds, Twitter, beer and...Thankful for creative minds, Twitter, beer and...
Thankful for creative minds, Twitter, beer and...
HB Agency
 

Destacado (20)

Eddaflyteleport3
Eddaflyteleport3Eddaflyteleport3
Eddaflyteleport3
 
Developing for Office 2007
Developing for Office 2007Developing for Office 2007
Developing for Office 2007
 
Conalep tlalnepantla 1
Conalep tlalnepantla 1Conalep tlalnepantla 1
Conalep tlalnepantla 1
 
AnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networksAnaVANET: an experiment and visualization tool for vehicular networks
AnaVANET: an experiment and visualization tool for vehicular networks
 
To a nice person
To a nice personTo a nice person
To a nice person
 
Mba postgrado
Mba postgradoMba postgrado
Mba postgrado
 
Sickle cell disease” (SCD): a project of curative treatment and informatics...
Sickle cell disease” (SCD): a project of  curative treatment and  informatics...Sickle cell disease” (SCD): a project of  curative treatment and  informatics...
Sickle cell disease” (SCD): a project of curative treatment and informatics...
 
LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...
LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...
LA DIGITALIZACIÓN DE LOS RETAILERS EN EUROPA: COMO ATRAER CLIENTES A TIENDAS...
 
Building An Online Marketing Strategy
Building An Online Marketing StrategyBuilding An Online Marketing Strategy
Building An Online Marketing Strategy
 
El pucherito
El pucheritoEl pucherito
El pucherito
 
Conectivismo - REDEI
Conectivismo - REDEIConectivismo - REDEI
Conectivismo - REDEI
 
Depot Square Unified Downtown Development Project Special Permit Application
Depot Square Unified Downtown Development Project Special Permit ApplicationDepot Square Unified Downtown Development Project Special Permit Application
Depot Square Unified Downtown Development Project Special Permit Application
 
Oportunidades de Negocios en la Web Social
Oportunidades de Negocios en la Web SocialOportunidades de Negocios en la Web Social
Oportunidades de Negocios en la Web Social
 
Galicia de los mil rios
Galicia de los mil riosGalicia de los mil rios
Galicia de los mil rios
 
Proyecto Aulas Virtuales 2
Proyecto Aulas Virtuales 2Proyecto Aulas Virtuales 2
Proyecto Aulas Virtuales 2
 
Planpyme
PlanpymePlanpyme
Planpyme
 
Quién es pablo
Quién es pabloQuién es pablo
Quién es pablo
 
Thankful for creative minds, Twitter, beer and...
Thankful for creative minds, Twitter, beer and...Thankful for creative minds, Twitter, beer and...
Thankful for creative minds, Twitter, beer and...
 
In Medias Res
In Medias ResIn Medias Res
In Medias Res
 
Sida 1 de diciembre
Sida 1 de diciembreSida 1 de diciembre
Sida 1 de diciembre
 

Similar a XQuery y XPath for SQL Server 2012 itpros dc_chapter6

Oracle xmldb
Oracle xmldbOracle xmldb
Oracle xmldb
Hermes Romero
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
Microsoft Argentina y Uruguay [Official Space]
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
Emanuel Calvo
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
DorisNoraCarhuavilca1
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
SpanishPASSVC
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developersEnrique Catala Bañuls
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
Julián Castiblanco
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005oswchavez
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
Onestic
 
Xml
XmlXml
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
Lorena Fernández
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scale
Eduardo Castro
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
Eduardo Castro
 
TRANSACT-SQL
TRANSACT-SQLTRANSACT-SQL
TRANSACT-SQL
karlajanethlopez
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
Byron Quisquinay
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ
 
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPNovedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPJoseph Lopez
 

Similar a XQuery y XPath for SQL Server 2012 itpros dc_chapter6 (20)

Oracle xmldb
Oracle xmldbOracle xmldb
Oracle xmldb
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Xml
XmlXml
Xml
 
Escalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQLEscalabilidad - Apache y MySQL
Escalabilidad - Apache y MySQL
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scale
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
 
Exposición
ExposiciónExposición
Exposición
 
TRANSACT-SQL
TRANSACT-SQLTRANSACT-SQL
TRANSACT-SQL
 
Exposición
ExposiciónExposición
Exposición
 
Struts2
Struts2Struts2
Struts2
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAPNovedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
Novedades de MS SQL Server 2012 para ambientes tecnológicos OLTP y OLAP
 

Más de Julián Castiblanco

70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASE70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASE
Julián Castiblanco
 
Descubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datosDescubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datos
Julián Castiblanco
 
Tech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con julyTech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con july
Julián Castiblanco
 
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Julián Castiblanco
 
Global Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalakeGlobal Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalake
Julián Castiblanco
 
Lecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOnLecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOn
Julián Castiblanco
 
Sql saturday 448 migración de bases de datos sql server hacia azure sqldb
Sql saturday 448   migración de bases de datos sql server hacia azure sqldbSql saturday 448   migración de bases de datos sql server hacia azure sqldb
Sql saturday 448 migración de bases de datos sql server hacia azure sqldb
Julián Castiblanco
 
Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6
Julián Castiblanco
 
Taller de sql server no 3
Taller de sql server no 3Taller de sql server no 3
Taller de sql server no 3
Julián Castiblanco
 
Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL Pass
Julián Castiblanco
 
Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2
Julián Castiblanco
 
Database Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL ServerDatabase Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL Server
Julián Castiblanco
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshare
Julián Castiblanco
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
Julián Castiblanco
 
Tarea dqs en ssis nunca termina
Tarea dqs en ssis nunca terminaTarea dqs en ssis nunca termina
Tarea dqs en ssis nunca termina
Julián Castiblanco
 
Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3
Julián Castiblanco
 
70 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 201270 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 2012Julián Castiblanco
 
Instalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azureInstalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azure
Julián Castiblanco
 
Agrupando datos en SQL Server
Agrupando datos en SQL ServerAgrupando datos en SQL Server
Agrupando datos en SQL Server
Julián Castiblanco
 
Taller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTETaller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTE
Julián Castiblanco
 

Más de Julián Castiblanco (20)

70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASE70461 Sesion2 Uso del SELECT, DISTINCT, CASE
70461 Sesion2 Uso del SELECT, DISTINCT, CASE
 
Descubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datosDescubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datos
 
Tech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con julyTech Talk Live - ITPROSDC - Big data con july
Tech Talk Live - ITPROSDC - Big data con july
 
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
Global Azure Bootcamp 2016 Bogota SQL2016 dba IaaS PaaS v4
 
Global Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalakeGlobal Azure Cloud Camp Bogota Introduccion Azure datalake
Global Azure Cloud Camp Bogota Introduccion Azure datalake
 
Lecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOnLecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOn
 
Sql saturday 448 migración de bases de datos sql server hacia azure sqldb
Sql saturday 448   migración de bases de datos sql server hacia azure sqldbSql saturday 448   migración de bases de datos sql server hacia azure sqldb
Sql saturday 448 migración de bases de datos sql server hacia azure sqldb
 
Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6
 
Taller de sql server no 3
Taller de sql server no 3Taller de sql server no 3
Taller de sql server no 3
 
Optimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL PassOptimización de motores sql server 24 horas SQL Pass
Optimización de motores sql server 24 horas SQL Pass
 
Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2
 
Database Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL ServerDatabase Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL Server
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshare
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
Tarea dqs en ssis nunca termina
Tarea dqs en ssis nunca terminaTarea dqs en ssis nunca termina
Tarea dqs en ssis nunca termina
 
Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3Características Adminsitración SQL Server 2012 Parte 3
Características Adminsitración SQL Server 2012 Parte 3
 
70 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 201270 462 Instalación SQL Server 2012
70 462 Instalación SQL Server 2012
 
Instalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azureInstalación de Sql server 2014 ctp2 sobre azure
Instalación de Sql server 2014 ctp2 sobre azure
 
Agrupando datos en SQL Server
Agrupando datos en SQL ServerAgrupando datos en SQL Server
Agrupando datos en SQL Server
 
Taller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTETaller básico de JOINS, SUBQUERYING, APPLY, CTE
Taller básico de JOINS, SUBQUERYING, APPLY, CTE
 

Último

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 

Último (20)

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 

XQuery y XPath for SQL Server 2012 itpros dc_chapter6

  • 1. 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
  • 2. • • • • 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
  • 3. 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
  • 4. Agenda • Recuperación de XML mediante FOR XML • Fragmentación de XML mediante OPENXML • Introducción a XQuery
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 12. Agenda • Recuperación de XML mediante FOR XML • Fragmentación de XML mediante OPENXML • Introducción a XQuery
  • 13. 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
  • 14. 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
  • 15. 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>'
  • 16. 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
  • 17. 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
  • 19. Agenda • Recuperación de XML mediante FOR XML • Fragmentación de XML mediante OPENXML • Introducción a XQuery
  • 21. 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
  • 22. 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
  • 23. Introducción a XQuery declarativo W3C estándar FLWOR Case Sensitive Usa Xpath http://www.w3schools.com/xpath/xpath_intro.asp
  • 24. 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.
  • 25. Introducción a XQuery Xpath Abreviaciones • “default” • @ • // , / • * Common Functions • Position() • Count() • Round() • Contains() • Substring()
  • 26. 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.
  • 27. Modificación de XML con XQuery insert delete Replace value of
  • 29. Introducción a Xquery-FLWOR FLWOR • For • Let • Where • Order by • Return Permite especificar en que nodo del xml quiero iniciar mi consulta
  • 30. 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.
  • 31. 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.
  • 32. 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.
  • 33. 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.