Está en la página 1de 3

Universidad Tec Milenio: Maestría

GT05008– Introducción a la base de datos

Operación JOIN

Se aplica la operación JOIN a dos tablas cuando se crea


una relación mediante la cláusula WHERE entre al
menos una columna de una tabla y al menos una
GT05008 - Introducción a las bases de datos columna de otra.

El propósito de esta operación es crear una tabla


Sesión 14. SQL para consultas multitabla. compuesta y temporal en la cual cada par de renglones
(uno de cada tabla) son unidos en un solo renglón
satisfaciendo la condición JOIN.

1 2

Operación JOIN Operación JOIN


Por ejemplo, considerar la siguiente base de datos:
Ejemplo:
EMPLEADOS ( nomina, nombre, sueldo )
ASIGNADO_A ( nomina, numProy ) Para obtener todos los nombres y presupuestos de los
PROYECTOS ( numProy, nombreProy, presupuesto, estatus ) proyectos en que trabaja "Juan Gil":

Para obtener todos los datos de los empleados y de los


SELECT Proyectos.nombreProy, Proyectos.presupuesto
proyectos en los que trabajan, necesitamos usar las tres
tablas para relacionar la información. FROM Empleados, Asignado_A, Proyectos
WHERE Empleados.nomina = Asignado_A.nomina
SELECT Empleados.* , Proyectos.* AND Asignado_A.numProy = Proyectos.numProy
FROM Empleados, Asignado_A, Proyectos AND Empleados.nombre = “Juan Gil”
WHERE Empleados.nomina = Asignado_A.nomina
AND Asignado_A.numProy = Proyectos.numProy 3 4

Condición con subconsulta Condición con subconsulta

Los estatutos SELECT que están dentro de una cláusula Ejemplo:


WHERE son llamados subconsultas.
Mostrar todos los datos de los empleados que trabajan
Una subconsulta puede regresar un solo valor, ningún en el proyecto #3.
valor o un conjunto de valores, pero debe tener sólo una
columna en su lista de columnas. SELECT *
FROM Empleados
WHERE nomina= ANY (
SELECT nomina
FROM Asignado_A
WHERE numProy = 3 )
5 6

D.R. © Universidad TecMilenio


Lázaro Cárdenas #2610 Col. Del Paseo Residencial
Monterrey, N.L., 2008. 1
Universidad Tec Milenio: Maestría
GT05008– Introducción a la base de datos

Condición con subconsulta Condición con subconsulta

Ejemplo: Ejemplo:

Obtener los nombres de los empleados que están Obtener los nombres de los empleados que NO están
asignados a algún proyecto. asignados a un proyecto.

SELECT nombre SELECT nombre


FROM Empleados FROM Empleados
WHERE nomina IN ( WHERE nomina NOT IN (
SELECT nomina FROM Asignado_A SELECT nomina FROM Asignado_A
WHERE Empleados.nomina = WHERE Empleados.nomina =
Asignado_A.nomina) Asignado_A.nomina)
7 8

Condición con subconsulta Funciones agregadas

Obtener los nombres de los empleados que están Ejemplo 1: ¿Cuántos empleados tenemos registrados?
asignados a proyectos con estatus "T" (proyectos que ya SELECT COUNT(*) FROM Empleados
terminaron).
Ejemplo 2: ¿Cuántos nombres distintos de empleados
SELECT nombre hay?
FROM Empleados SELECT COUNT(DISTINCT nombre)
WHERE "T" = ALL ( FROM Empleados
SELECT estatus FROM Proyectos, Asignado_A
WHERE Proyectos.numProy = Ejemplo 3: ¿Cuánto dinero en total ha sido asignado a
Asignado_A.numProy los proyectos?
AND Empleados.nomina = Asignado_A.nomina ) SELECT SUM(presupuesto) FROM Proyectos
9 10

Funciones agregadas Bibliografía


Ejemplo 4: ¿Cuál es el sueldo promedio de un
empleado? Connolly, T. & Begg, C. (2005). Sistemas de bases de
datos. Un enfoque práctico para diseño, implementación
SELECT AVG(sueldo) FROM Empleados
y gestión. Cuarta edición. España: Pearson Educación.
Ejemplo 5: ¿Cuál es el presupuesto menor asignado a Capítulo 5: SQL: manipulación de datos.
un proyecto?
SELECT MIN(presupuesto) FROM
Proyectos
Ejemplo 6: ¿Cuál es el nombre del empleado que gana
el sueldo más alto?
SELECT nombre FROM Empleados
WHERE sueldo = (
SELECT MAX(sueldo)
FROM Empleados ) 11 12

D.R. © Universidad TecMilenio


Lázaro Cárdenas #2610 Col. Del Paseo Residencial
Monterrey, N.L., 2008. 2
Universidad Tec Milenio: Maestría
GT05008– Introducción a la base de datos

Créditos

Diseño de contenido:
Ing. Ma. Concepción Villar Cuesta, MCC, MATI

Edición de contenido:
Lic. Yabneet Abril Pérez García

Diseño gráfico:
Lic. Miguel Ángel Reynosa, MANM

Edición de texto:
Lic. Perla Téllez Garza, LCC

13

D.R. © Universidad TecMilenio


Lázaro Cárdenas #2610 Col. Del Paseo Residencial
Monterrey, N.L., 2008. 3

También podría gustarte