SlideShare a Scribd company logo
1 of 26
Download to read offline
Querying Microsoft SQL
Server 2012
Exam 70-461
Combinando Tablas

Julián Castiblanco

Andrés Useche

http://julycastiblanco.blogspot.com/

usechejan@gmail.com

Julian_castiblancop@hotmail.com

Líder ITPros-DC

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
Agenda
•
•
•
•
•

Presentación de las certificaciones de SQL Server 2012.
Carreras del MVA
Contenido del examen 70-461
Introducción a combinación de tablas
Subconsultas y Expresiones de tabla comunes (CTE)
Certificaciones SQL Server 2012

http://www.microsoft.com/learning/en/us/mcsa-sql-certification.aspx
Certificaciones SQL Server 2012

http://www.microsoft.com/learning/en/us/mcse-sql-data-platform.aspx
Certificaciones SQL Server 2012

http://www.microsoft.com/learning/en/us/mcse-sql-business-intelligence.aspx
Preséntalo Ahora!!!!

http://www.microsoft.com/learning/en-us/second-shot.aspx
http://www.microsoftvirtualacademy.com/trainingcourses/querying-microsoft-sql-server-2012-databasesjump-start#?fbid=wXtCFLgI5kM
Contenido del examen 70-461

Create database objects (24%)
•

Create and alter tables using T-SQL syntax (simple statements): Create tables without using the built
in tools; ALTER; DROP; ALTER COLUMN; CREATE

•

Create and alter views (simple statements): Create indexed views; create views without using the
built in tools; CREATE, ALTER, DROP

•

Design views : Ensure code non regression by keeping consistent signature for procedure, views and
function (interfaces); security implications

•

Create and modify constraints (simple statements) : Create constraints on tables; define
constraints; unique constraints; default constraints; primary and foreign key constraints

•

Create and alter DML triggers: Inserted and deleted tables; nested triggers; types of triggers;
update functions; handle multiple rows in a session; performance implications of triggers
Contenido del examen 70-461
Work with data (27%)
•

Query data by using SELECT statements: Use the ranking function to select top(X) rows for multiple categories in a
single query; write and perform queries efficiently using the new (SQL 2005/8->) code items such as

synonyms, and joins (except, intersect); implement logic which uses dynamic SQL and system
metadata; write efficient, technically complex SQL queries, including all types of joins versus the
use of derived tables; determine what code may or may not execute based on the tables provided;
given a table with constraints, determine which statement set would load a table; use and understand
different data access technologies; case versus isnull versus coalesce.
•

Implement sub-queries: Identify problematic elements in query plans; pivot and unpivot; apply operator; cte

statement; with statement
•

Implement data types: Use appropriate data; understand the uses and limitations of each data type; impact of
GUID (newid, newsequentialid) on database performance, when to use what data type for columns

•

Implement aggregate queries: New analytic functions; grouping sets; spatial aggregates; apply ranking functions

•

Query and manage XML data: Understand XML datatypes and their schemas and interop w/, limitations and
restrictions; implement XML schemas and handling of XML data; XML data: how to handle it in SQL Server and
when and when not to use it, including XML namespaces; import and export XML; XML indexing
Contenido del examen 70-461

Modify data (24%)
•

•
•
•

Create and alter stored procedures (simple statements): Write a stored procedure to
meet a given set of requirements; branching logic; create stored procedures and other
programmatic objects; techniques for developing stored procedures; different types of
storeproc result; create stored procedure for data access layer; program stored
procedures, triggers, functions with T-SQL
Modify data by using INSERT, UPDATE, and DELETE statements: Given a set of code with
defaults, constraints, and triggers, determine the output of a set of DDL; know which
SQL statements are best to solve common requirements; use output statement
Combine datasets: Difference between UNION and UNION all; case versus isnull versus
coalesce; modify data by using MERGE statements
Work with functions: Understand deterministic, non-deterministic functions; scalar and
table values; apply built-in scalar functions; create and alter user-defined functions
(UDFs)
Contenido del examen 70-461

Troubleshoot and optimize (25%)
•

•
•
•

Optimize queries : Understand statistics; read query plans; plan guides; DMVs; hints;
statistics IO; dynamic vs. parameterized queries; describe the different join types
(HASH, MERGE, LOOP) and describe the scenarios they would be used in
Manage transactions: Mark a transaction; understand begin tran, commit, and rollback;
implicit vs explicit transactions; isolation levels; scope and type of locks; trancount
Evaluate the use of row-based operations vs. set-based operations: When to use
cursors; impact of scalar UDFs; combine multiple DML operations
Implement error handling:Implement try/catch/throw; use set based rather than row
based logic; transaction management
IBM 305 RAMAC computer en 1956. Tenía 50 discos
de 24” con una capacidad de almacenamiento de 5
millones (poco menos de 5 MB)
Introducción a combinación de tablas

Cross Join
Inner Join

Outer Join

• Realiza un producto cartesiano
• También conocido como todos con todos

• Combina las filas basado en una o más columnas comunes
• Normalmente las llaves primarias y las foráneas
• Solo muestra los registros que tengan un valor común en
ambas tablas

• Preserva una de las tablas y en los registros que tengan un
campo en común con la segunda tabla extrae la
información que necesitamos, de lo contrario estas
columnas quedarán con un valor no determinado (NULL)
• Puede ser LEFT Outer JOIN o RIGHT Outer JOIN

Cuando en la consulta intervienen más de dos tablas el sistema va creando una tabla virtual con el
resultado de la primera combinación y utiliza este para hacer el “join” con la siguiente tabla
CROSS JOIN

ID NAME

AGE

Id

Fruta

Color

1

Ivan

17

1

Pera

Verde

2

Andrea

33

2

Mora

Rojo

ID

NAME

AGE

Id

Fruta

Color

1

Ivan

17

1

Pera

Verde

1

Ivan

17

2

Mora

Rojo

2

Andrea

33

1

Pera

Verde

2

Andrea

33

2

Mora

Rojo
INNER JOIN

Id
ID STUDENT

1

Ivan
Andrea

3

Pipe

Cali

4

10

Tumaco

3

1

Pereira

2

2

2

1

IDCITY

CITY

Neiva

ID

STUDENT

IDCITY

Id

CITY

1

Ivan

2

2

Tumaco

2

Andrea

1

1

Pereira
LEFT OUTER JOIN

Id
ID STUDENT

1

Ivan
Andrea

3

Pipe

Cali

4

10

Tumaco

3

1

Pereira

2

2

2

1

IDCITY

CITY

Neiva

ID

STUDENT

IDCITY

Id

CITY

1

Ivan

2

2

Tumaco

2

Andrea

1

1

Pereira

3

Pipe

10

NULL

NULL
RIGHT OUTER JOIN

Id
ID STUDENT

1

Ivan
Andrea

3

Pipe

Tumaco

3

1

Pereira

2

2

2

1

IDCITY

CITY

Cali

10

ID

STUDENT

IDCITY

Id

CITY

1

Ivan

2

2

Tumaco

2

Andrea

1

1

Pereira

NULL

3

Cali

NULL NULL
SUBCONSULTAS

simpli
fican

Agrup
an

consul
tas

compl
ejas

SELECT
dbo.candidatos2014.Candidato,
dbo.candidatos2014.Corporación
FROM dbo.candidatos2014
WHERE idPartido = (SELECT TOP 1
idpartido FROM dbo.candidatos2014
GROUP BY idPartido ORDER BY
COUNT(*) DESC)
TABLAS DERIVADAS
Basados en el
resultado de una
consulta se genera un
conjunto de datos
que será tratado
como insumo que
será tratado como
una tabla para una
consulta superior.

SELECT PA.Nombre
,NROCAN.NROCANDIDATOS
FROM dbo.Partidos AS PA
INNER JOIN (SELECT idpartido,
COUNT(*) AS NROCANDIDATOS FROM
dbo.candidatos2014
GROUP BY idPartido) AS NROCAN
ON PA.IDPartido=NROCAN.idpartido
ORDER BY NROCAN.NROCANDIDATOS DESC
COMMON TABLE EXPRESSION (CTE)

Son subconsultas que
hacen que el código
se vea más limpio,
haciendo más fácil su
mantenimiento.
Normalmente son
utilizadas en
consultar recursivas.

WITH NROCAN AS (SELECT idpartido,
COUNT(*) AS NROCANDIDATOS
FROM dbo.candidatos2014 GROUP BY
idPartido)
SELECT PA.Nombre,
NROCAN.NROCANDIDATOS
FROM dbo.Partidos AS PA
INNER JOIN
NROCAN
ON PA.IDPartido=NROCAN.idpartido
ORDER BY NROCAN.NROCANDIDATOS DESC
APPLY
• A diferencia de los JOIN, en el cual el motor toma las 2
tablas y las cruza por uno o más campos indicados. El
comando APPLY puede generar una consulta en la segunda
tabla basada en cada una de las filas devultas por la tabla
que está a la derecha.
• La diferencia entre el CROSS APPLY y el OUTER APPLY es
que el primero devuelve solo los registros que encuentra en
ambas tablas y el OUTER devolverá NULLs en las columnas
donde no consiga un registro de salida en la tabla que se
encuentra a la derecha.
APPLY
SELECT D.deptid, D.deptname,
D.deptmgrid
,ST.empid, ST.empname,
ST.mgrid
FROM Departments AS D
CROSS APPLY
fn_getsubtree(D.deptmgrid) AS ST;
EL TALLER

http://www.slideshare.net/juliancastiblanco/t
aller-bsico-sentencias-sql
http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg
URL de Interés
• http://royal.pingdom.com/2008/04/08/the-history-ofcomputer-data-storage-in-pictures/
• http://rateyourmusic.com/list/jweber14/top_100_rock_ba
nds_of_the_70s/
• http://en.wikipedia.org/wiki/Latin_American_debt_crisis
• http://www.registraduria.gov.co/?page=candidatos_2014
• http://es.wikipedia.org/wiki/Anexo:Partidos_pol%C3%ADtic
os_de_Colombia
• http://www.amazon.com/Training-Kit-Exam-70-461Microsoft/dp/0735666059/ref=sr_1_1?ie=UTF8&qid=1392
299933&sr=8-1&keywords=70-461
• https://www.facebook.com/groups/7399452387/

More Related Content

Viewers also liked

Viewers also liked (9)

Curso SQL - Leccion 6
Curso SQL - Leccion 6Curso SQL - Leccion 6
Curso SQL - Leccion 6
 
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
 
Presentacion Sql 2
Presentacion Sql 2Presentacion Sql 2
Presentacion Sql 2
 
Curso SQL - Leccion 7
Curso SQL - Leccion 7  Curso SQL - Leccion 7
Curso SQL - Leccion 7
 
Consultas básicas en sql server
Consultas básicas en sql serverConsultas básicas en sql server
Consultas básicas en sql server
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sql
 
Consultas base de datos en SQL
Consultas base de datos en SQLConsultas base de datos en SQL
Consultas base de datos en SQL
 
Manual sql server parte 1
Manual sql server parte 1Manual sql server parte 1
Manual sql server parte 1
 
Caso de estudio joins
Caso de estudio joinsCaso de estudio joins
Caso de estudio joins
 

Similar to Introducción a JOINS, CTE, APPLY y SUBCONSULTAS

Herramientas usadas para definir el ambiente
Herramientas usadas para definir el ambienteHerramientas usadas para definir el ambiente
Herramientas usadas para definir el ambienteAlejandra Apeleister
 
Competencia analisis
Competencia analisisCompetencia analisis
Competencia analisismileing
 
Ventajas y desventajas de los sistemas rolap y molap
Ventajas y desventajas de los sistemas rolap y molapVentajas y desventajas de los sistemas rolap y molap
Ventajas y desventajas de los sistemas rolap y molapJuan Anaya
 
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
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Eduardo Castro
 
ANALISIS Y DISEÑO ING DE SOFTWARE.pptx
ANALISIS Y DISEÑO ING DE SOFTWARE.pptxANALISIS Y DISEÑO ING DE SOFTWARE.pptx
ANALISIS Y DISEÑO ING DE SOFTWARE.pptxMoises Martinez
 
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdf
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdfCuaderno_de_Informes_Noviembre(ing. software) (1).pdf
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdfYanVenturaCardenas
 
Conviértete en un PowerDBA con PowerShell
Conviértete en un PowerDBA con PowerShellConviértete en un PowerDBA con PowerShell
Conviértete en un PowerDBA con PowerShellEnrique Puig
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptrogergrefa1
 
Analista de sistemas
Analista de sistemasAnalista de sistemas
Analista de sistemasLaloMalpika01
 
Programacion tipos de datos
Programacion tipos de datosProgramacion tipos de datos
Programacion tipos de datosKelvinBriceo
 
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...jorgelebrato
 
Herramientas de modelaje de datos
Herramientas de modelaje de datosHerramientas de modelaje de datos
Herramientas de modelaje de datosAndre Gutierrez
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Julián Castiblanco
 
Afinamientodebasesdedatosyservidoreswebs
AfinamientodebasesdedatosyservidoreswebsAfinamientodebasesdedatosyservidoreswebs
Afinamientodebasesdedatosyservidoreswebsricardosusa5
 

Similar to Introducción a JOINS, CTE, APPLY y SUBCONSULTAS (20)

Herramientas usadas para definir el ambiente
Herramientas usadas para definir el ambienteHerramientas usadas para definir el ambiente
Herramientas usadas para definir el ambiente
 
Competencia analisis
Competencia analisisCompetencia analisis
Competencia analisis
 
Ventajas y desventajas de los sistemas rolap y molap
Ventajas y desventajas de los sistemas rolap y molapVentajas y desventajas de los sistemas rolap y molap
Ventajas y desventajas de los sistemas rolap y molap
 
Novedades sql server 2008 para developers
Novedades sql server 2008 para developersNovedades sql server 2008 para developers
Novedades sql server 2008 para developers
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos
 
Herramientas para modelar datos
Herramientas para modelar datos Herramientas para modelar datos
Herramientas para modelar datos
 
1. intro adas
1. intro adas1. intro adas
1. intro adas
 
ANALISIS Y DISEÑO ING DE SOFTWARE.pptx
ANALISIS Y DISEÑO ING DE SOFTWARE.pptxANALISIS Y DISEÑO ING DE SOFTWARE.pptx
ANALISIS Y DISEÑO ING DE SOFTWARE.pptx
 
Pres17BDII.ppt
Pres17BDII.pptPres17BDII.ppt
Pres17BDII.ppt
 
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdf
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdfCuaderno_de_Informes_Noviembre(ing. software) (1).pdf
Cuaderno_de_Informes_Noviembre(ing. software) (1).pdf
 
Lenguaje Transact sql
Lenguaje Transact sqlLenguaje Transact sql
Lenguaje Transact sql
 
Conviértete en un PowerDBA con PowerShell
Conviértete en un PowerDBA con PowerShellConviértete en un PowerDBA con PowerShell
Conviértete en un PowerDBA con PowerShell
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.ppt
 
Analista de sistemas
Analista de sistemasAnalista de sistemas
Analista de sistemas
 
Programacion tipos de datos
Programacion tipos de datosProgramacion tipos de datos
Programacion tipos de datos
 
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
Meetup Madrid 6 Marzo 2024 - MuleSoft en el mundo real: ejemplos de casos de ...
 
Herramientas de modelaje de datos
Herramientas de modelaje de datosHerramientas de modelaje de datos
Herramientas de modelaje de datos
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Trabajo ayudantia
Trabajo ayudantiaTrabajo ayudantia
Trabajo ayudantia
 
Afinamientodebasesdedatosyservidoreswebs
AfinamientodebasesdedatosyservidoreswebsAfinamientodebasesdedatosyservidoreswebs
Afinamientodebasesdedatosyservidoreswebs
 

More from 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, CASEJulián Castiblanco
 
Descubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datosDescubriendo los Datos - Bodegas de datos
Descubriendo los Datos - Bodegas de datosJuliá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 julyJuliá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 v4Juliá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 datalakeJulián Castiblanco
 
Lecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOnLecciones aprendidas SQL Server AlwaryOn
Lecciones aprendidas SQL Server AlwaryOnJuliá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 sqldbJulián Castiblanco
 
Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6Databaseadmonfundamentalitprosdcchapter6
Databaseadmonfundamentalitprosdcchapter6Juliá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 PassJulián Castiblanco
 
Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2Database admonfundamental itprosdc_chapter2
Database admonfundamental itprosdc_chapter2Juliá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 ServerJulián Castiblanco
 
Carbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareCarbura tusql sesion2_slideshare
Carbura tusql sesion2_slideshareJulián Castiblanco
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareJuliá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 3Juliá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 azureJulián Castiblanco
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6Julián Castiblanco
 
Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2Julián Castiblanco
 
Creación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express editionCreación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express editionJulián Castiblanco
 

More from 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
 
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
 
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
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2Taller Transact SQL ITProsDC - T2
Taller Transact SQL ITProsDC - T2
 
Creación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express editionCreación de bases automaticamente isa2006 y sql server 2008 r2 express edition
Creación de bases automaticamente isa2006 y sql server 2008 r2 express edition
 
Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL
 

Recently uploaded

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Recently uploaded (20)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

Introducción a JOINS, CTE, APPLY y SUBCONSULTAS

  • 1. Querying Microsoft SQL Server 2012 Exam 70-461 Combinando Tablas Julián Castiblanco Andrés Useche http://julycastiblanco.blogspot.com/ usechejan@gmail.com Julian_castiblancop@hotmail.com Líder ITPros-DC 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. Agenda • • • • • Presentación de las certificaciones de SQL Server 2012. Carreras del MVA Contenido del examen 70-461 Introducción a combinación de tablas Subconsultas y Expresiones de tabla comunes (CTE)
  • 4. Certificaciones SQL Server 2012 http://www.microsoft.com/learning/en/us/mcsa-sql-certification.aspx
  • 5. Certificaciones SQL Server 2012 http://www.microsoft.com/learning/en/us/mcse-sql-data-platform.aspx
  • 6. Certificaciones SQL Server 2012 http://www.microsoft.com/learning/en/us/mcse-sql-business-intelligence.aspx
  • 9. Contenido del examen 70-461 Create database objects (24%) • Create and alter tables using T-SQL syntax (simple statements): Create tables without using the built in tools; ALTER; DROP; ALTER COLUMN; CREATE • Create and alter views (simple statements): Create indexed views; create views without using the built in tools; CREATE, ALTER, DROP • Design views : Ensure code non regression by keeping consistent signature for procedure, views and function (interfaces); security implications • Create and modify constraints (simple statements) : Create constraints on tables; define constraints; unique constraints; default constraints; primary and foreign key constraints • Create and alter DML triggers: Inserted and deleted tables; nested triggers; types of triggers; update functions; handle multiple rows in a session; performance implications of triggers
  • 10. Contenido del examen 70-461 Work with data (27%) • Query data by using SELECT statements: Use the ranking function to select top(X) rows for multiple categories in a single query; write and perform queries efficiently using the new (SQL 2005/8->) code items such as synonyms, and joins (except, intersect); implement logic which uses dynamic SQL and system metadata; write efficient, technically complex SQL queries, including all types of joins versus the use of derived tables; determine what code may or may not execute based on the tables provided; given a table with constraints, determine which statement set would load a table; use and understand different data access technologies; case versus isnull versus coalesce. • Implement sub-queries: Identify problematic elements in query plans; pivot and unpivot; apply operator; cte statement; with statement • Implement data types: Use appropriate data; understand the uses and limitations of each data type; impact of GUID (newid, newsequentialid) on database performance, when to use what data type for columns • Implement aggregate queries: New analytic functions; grouping sets; spatial aggregates; apply ranking functions • Query and manage XML data: Understand XML datatypes and their schemas and interop w/, limitations and restrictions; implement XML schemas and handling of XML data; XML data: how to handle it in SQL Server and when and when not to use it, including XML namespaces; import and export XML; XML indexing
  • 11. Contenido del examen 70-461 Modify data (24%) • • • • Create and alter stored procedures (simple statements): Write a stored procedure to meet a given set of requirements; branching logic; create stored procedures and other programmatic objects; techniques for developing stored procedures; different types of storeproc result; create stored procedure for data access layer; program stored procedures, triggers, functions with T-SQL Modify data by using INSERT, UPDATE, and DELETE statements: Given a set of code with defaults, constraints, and triggers, determine the output of a set of DDL; know which SQL statements are best to solve common requirements; use output statement Combine datasets: Difference between UNION and UNION all; case versus isnull versus coalesce; modify data by using MERGE statements Work with functions: Understand deterministic, non-deterministic functions; scalar and table values; apply built-in scalar functions; create and alter user-defined functions (UDFs)
  • 12. Contenido del examen 70-461 Troubleshoot and optimize (25%) • • • • Optimize queries : Understand statistics; read query plans; plan guides; DMVs; hints; statistics IO; dynamic vs. parameterized queries; describe the different join types (HASH, MERGE, LOOP) and describe the scenarios they would be used in Manage transactions: Mark a transaction; understand begin tran, commit, and rollback; implicit vs explicit transactions; isolation levels; scope and type of locks; trancount Evaluate the use of row-based operations vs. set-based operations: When to use cursors; impact of scalar UDFs; combine multiple DML operations Implement error handling:Implement try/catch/throw; use set based rather than row based logic; transaction management
  • 13. IBM 305 RAMAC computer en 1956. Tenía 50 discos de 24” con una capacidad de almacenamiento de 5 millones (poco menos de 5 MB)
  • 14. Introducción a combinación de tablas Cross Join Inner Join Outer Join • Realiza un producto cartesiano • También conocido como todos con todos • Combina las filas basado en una o más columnas comunes • Normalmente las llaves primarias y las foráneas • Solo muestra los registros que tengan un valor común en ambas tablas • Preserva una de las tablas y en los registros que tengan un campo en común con la segunda tabla extrae la información que necesitamos, de lo contrario estas columnas quedarán con un valor no determinado (NULL) • Puede ser LEFT Outer JOIN o RIGHT Outer JOIN Cuando en la consulta intervienen más de dos tablas el sistema va creando una tabla virtual con el resultado de la primera combinación y utiliza este para hacer el “join” con la siguiente tabla
  • 17. LEFT OUTER JOIN Id ID STUDENT 1 Ivan Andrea 3 Pipe Cali 4 10 Tumaco 3 1 Pereira 2 2 2 1 IDCITY CITY Neiva ID STUDENT IDCITY Id CITY 1 Ivan 2 2 Tumaco 2 Andrea 1 1 Pereira 3 Pipe 10 NULL NULL
  • 18. RIGHT OUTER JOIN Id ID STUDENT 1 Ivan Andrea 3 Pipe Tumaco 3 1 Pereira 2 2 2 1 IDCITY CITY Cali 10 ID STUDENT IDCITY Id CITY 1 Ivan 2 2 Tumaco 2 Andrea 1 1 Pereira NULL 3 Cali NULL NULL
  • 20. TABLAS DERIVADAS Basados en el resultado de una consulta se genera un conjunto de datos que será tratado como insumo que será tratado como una tabla para una consulta superior. SELECT PA.Nombre ,NROCAN.NROCANDIDATOS FROM dbo.Partidos AS PA INNER JOIN (SELECT idpartido, COUNT(*) AS NROCANDIDATOS FROM dbo.candidatos2014 GROUP BY idPartido) AS NROCAN ON PA.IDPartido=NROCAN.idpartido ORDER BY NROCAN.NROCANDIDATOS DESC
  • 21. COMMON TABLE EXPRESSION (CTE) Son subconsultas que hacen que el código se vea más limpio, haciendo más fácil su mantenimiento. Normalmente son utilizadas en consultar recursivas. WITH NROCAN AS (SELECT idpartido, COUNT(*) AS NROCANDIDATOS FROM dbo.candidatos2014 GROUP BY idPartido) SELECT PA.Nombre, NROCAN.NROCANDIDATOS FROM dbo.Partidos AS PA INNER JOIN NROCAN ON PA.IDPartido=NROCAN.idpartido ORDER BY NROCAN.NROCANDIDATOS DESC
  • 22. APPLY • A diferencia de los JOIN, en el cual el motor toma las 2 tablas y las cruza por uno o más campos indicados. El comando APPLY puede generar una consulta en la segunda tabla basada en cada una de las filas devultas por la tabla que está a la derecha. • La diferencia entre el CROSS APPLY y el OUTER APPLY es que el primero devuelve solo los registros que encuentra en ambas tablas y el OUTER devolverá NULLs en las columnas donde no consiga un registro de salida en la tabla que se encuentra a la derecha.
  • 23. APPLY SELECT D.deptid, D.deptname, D.deptmgrid ,ST.empid, ST.empname, ST.mgrid FROM Departments AS D CROSS APPLY fn_getsubtree(D.deptmgrid) AS ST;
  • 26. URL de Interés • http://royal.pingdom.com/2008/04/08/the-history-ofcomputer-data-storage-in-pictures/ • http://rateyourmusic.com/list/jweber14/top_100_rock_ba nds_of_the_70s/ • http://en.wikipedia.org/wiki/Latin_American_debt_crisis • http://www.registraduria.gov.co/?page=candidatos_2014 • http://es.wikipedia.org/wiki/Anexo:Partidos_pol%C3%ADtic os_de_Colombia • http://www.amazon.com/Training-Kit-Exam-70-461Microsoft/dp/0735666059/ref=sr_1_1?ie=UTF8&qid=1392 299933&sr=8-1&keywords=70-461 • https://www.facebook.com/groups/7399452387/