Base de datos II Objetivo Resultado de Aprendizaje - UT-AGS

Anuncio
05/06/2015
Objetivo

Base de datos II
El
alumno
elaborará
consultas
avanzadas utilizando un SGBD para
desplegar información de acuerdo a
las necesidades de la organización.
UNIDAD IV. Consultas avanzadas
MC Ricardo Israel Roque Covarrubias
Resultado de Aprendizaje

Contenido
Elaborará con base en un caso de
estudio un compendio que incluya los
SCRIPTS de:
5 consultas locales
 5 consultas remotas
 5 subconsultas
5
consultas con
conjuntos.
1.
2.
3.
Consultas multitablas.
Subconsultas.
Operaciones con conjuntos

operaciones
MC Ricardo Israel Roque Covarrubias
de
MC Ricardo Israel Roque Covarrubias
1. Consultas Multitablas
Producto cartesiano
Producto cartesiano
 INNER JOIN
 OUTER JOIN


MC Ricardo Israel Roque Covarrubias
El producto cartesiano se indica
poniendo en la FROM las tablas que
queremos componer separadas por
comas, podemos obtener así el
producto cartesiano de dos, tres, o
más tablas.
MC Ricardo Israel Roque Covarrubias
1
05/06/2015
INNER JOIN

El INNER JOIN es otro tipo de
composición de tablas, permite
emparejar filas de distintas tablas de
forma más eficiente que con el
producto cartesiano cuando una de
las columnas de emparejamiento está
indexada.
MC Ricardo Israel Roque Covarrubias
INNER JOIN

SELECT campos FROM gente INNER
JOIN
empresa
ON
gente.cod_empleado
=
empresa.cod_empleado
MC Ricardo Israel Roque Covarrubias
SELECT * FROM (pedidos INNER
JOIN clientes ON pedidos.clie =
clientes.numclie)
INNER
JOIN
empleados
ON
pedidos.rep
=
empleados.numemp
 SELECT * FROM clientes INNER JOIN
(pedidos INNER JOIN empleados ON
pedidos.rep = empleados.numemp)
ON pedidos.clie = clientes.numclie

MC Ricardo Israel Roque Covarrubias
INNER JOIN

Ya que en vez de hacer el producto
cartesiano
completo
y
luego
seleccionar la filas que cumplen la
condición de emparejamiento, para
cada fila de una de las tablas busca
directamente en la otra tabla las filas
que cumplen la condición, con lo cual
se emparejan sólo las filas que luego
aparecen en el resultado.
MC Ricardo Israel Roque Covarrubias
INNER JOIN
LEFT JOIN
 RIGHT JOIN
 FULL JOIN

MC Ricardo Israel Roque Covarrubias

SELECT * FROM pedidos INNER JOIN
productos
ON
(pedidos.fab
=
productos.idfab)
AND
(pedidos.producto
=
productos.idproducto)
MC Ricardo Israel Roque Covarrubias
2
05/06/2015
2. Subconsultas

Subconsulta como tabla derivada
Es un conjunto de registros dentro de
una consulta que funciona como una
tabla
 Ocupa el lugar de la tabla en la cláusula
FROM
2. Subconsultas


USE northwind
SELECT T.orderid, T.customerid
FROM (SELECT orderid, customerid FROM orders )
AS T
MC Ricardo Israel Roque Covarrubias
2. Subconsultas

Subconsulta correlacionada

Cuando
crea
una
subconsulta
correlacionada, las subconsultas internas
se evalúan repetidamente, una vez por
cada fila de la consulta externa
USE northwind
SELECT orderid, customeridFROM orders AS or1
WHERE 20 < (SELECT quantity FROM [order details]
AS od WHERE or1.orderid = od.orderid AND
od.productid = 23)
MC Ricardo Israel Roque Covarrubias
Subconsulta como una expresión


Se evalúa y trata como una expresión
Se ejecuta una vez para la instrucción
entera
USE pubs
SELECT title, price,( SELECT AVG(price) FROM titles)
AS promedio, price-(SELECT AVG(price) FROM titles)
AS diferencia FROM titles WHERE
type='popular_comp
MC Ricardo Israel Roque Covarrubias
2. Subconsultas
USE northwind
SELECT DISTINCT productid, quantity
FROM [order details] AS ord1
WHERE quantity = (SELECT MAX(quantity) FROM
[order details] AS ord2
WHERE ord1.productid = ord2.productid)

En este ejemplo se devuelve una lista de
productos y el pedido mayor realizado hasta la
fecha de cada producto de la tabla order details.
MC Ricardo Israel Roque Covarrubias
2. Subconsultas
2. Subconsultas
USE pubs
SELECT DISTINCT t1.type FROM titles AS t1
WHERE t1.type IN(SELECT t2.type FROM titles AS t2
WHERE t1.pub_id = t2.pub_id)
USE pubs
SELECT t1.type, t1.title, t1.priceFROM titles AS
t1WHERE t1.price > ( SELECT AVG(t2.price)FROM
titles AS t2WHERE t1.type = t2.type )

En este ejemplo se utiliza una subconsulta
correlacionada para buscar los tipos de libros
publicados por más de un editor.
MC Ricardo Israel Roque Covarrubias

En este ejemplo se buscan todos los títulos con un
precio mayor que el precio promedio para libros
del mismo tipo.
MC Ricardo Israel Roque Covarrubias
3
05/06/2015
2. Subconsultas

EXISTS y NOT EXISTS:

Determinar si hay datos en una lista de valores
USE NorthWind
SELECT lastname, employeeid FROM employees AS e
WHERE EXISTS ( SELECT * FROM orders AS o
WHERE e.employeeid = o.employeeid AND
o.orderdate = '5/9/1997' )

En este ejemplo se utiliza una subconsulta
correlacionada con un operador EXISTS en la
cláusula WHERE para devolver una lista de
empleados que realizaron pedidos el día 5/9/1997
MC Ricardo Israel Roque Covarrubias
3. Union

UNION: Crea un conjunto de
resultados a partir de varias consultas
Unir (UNION) todas (ALL) las filas de dos
columnas de tablas diferentes.
select City from Employees
union all
select City from Customers
Devuelve la suma de todas las filas en ambas
columnas.
MC Ricardo Israel Roque Covarrubias
3. Union
UNION
Unir (UNION) las filas de dos columnas
de tablas diferentes sin repetir ningún
valor.

select City from Employees
union
select City from Customers
Devuelve la suma de todas las filas en
ambas columnas pero con valores
únicos.
MC Ricardo Israel Roque Covarrubias
4
Descargar