Sie sind auf Seite 1von 18

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE ING. INDUSTRIAL

Base de Datos
Resultados
Resultados
Internet

Requerimientos
Requerimientos

Docente:
Ing. Francisco Rodrguez

BASE
DATOS

Base de Datos

Tema 7:

El Lenguaje Estndar SQL


SubConsultas

Que es una Subconsulta?


Una subconsulta es una sentencia SELECT
embebida en una clusula de otra
sentencia SQL.
consulta
principal

Sintaxis del Select anidado


SELECT...
FROM...
subconsulta

WHERE...
( SELECT...
FROM...
WHERE... )

Subconsultas: Sintaxis

SELECT lista_Campos
FROM nom_tabla
WHERE expresin operador
operador
(SELECT lista_campos
FROM nom_tabla)

Tipos de Subconsultas

Subconsultas de fila simple


Subconsultas de fila multiple

Reglas de Subconsultas

Una subconsulta debe estar encerrada entre


parntesis.
Una subconsulta debe aparecer al lado derecho del
operador.
Las subconsultas no pueden contener una clausula
OrderBy.

Subconsultas de fila simple


Como son procesadas las Subconsultas
Anidadas?
1. La sentencia SELECT Anidada es ejecutada primero.
2. El Resultado es pasado a la Consulta Principal.
Problema
Mostrar apellidos y cargos de los empleados del departamento donde
trabaja el sr Borea
SELECT dept_id

SELECT apellido, cargo

FROM Empleado

FROM Empleado

WHERE apellido='Borea'

WHERE dept_id =

Solucin integrada
SELECT apellido, cargo FROM Empleado
WHERE dept_id =
(SELECT dept_id
FROM Empleado
WHERE apellido='Borea)

Otro problema
Mostrar el apellido, cargo y salario de todos los
empleados que ganen menos del promedio
SELECT apellido, cargo,salario
FROM Empleado
WHERE salario <
(SELECT AVG(salario)
FROM Empleado)

Subconsultas de fila mltiple


Si Usted escribe una subconsulta que retorne ms de una fila
y utiliza un solo valor de comparacin, entonces cometer un
error.
SELECT apellido, nombre, cargo
FROM Empleado
WHERE dept_id =
(Select dept_id FROM

Obtener apellido,
nombre y cargo de los
empleados que estn en
el departamento de
Finanzas o en la regin 2

Departamento
where nombredpto=Finanzas or
region_id=2

Error !!!

Subconsultas de Fila Mltiple. Ejemplo


La subconsulta de fila mltiple retorna varias filas. Usted
debe usar un operador de fila mltiple en la
clusulaWHERE, por ejemplo el operador IN.
SELECT apellido, nombre, cargo
FROM Empleado
WHERE dept_id IN
(Select dept_id FROM
Departamento
where nombredpto=Finanzas or
region_id=2

Subconsultas de Fila Mltiple. Ejemplo 2

Mostrar el apellido, cdigo de departamento y cargo


de todos los empleados asignados a la regiones 1 o 2
SELECT apellido, dept_id, cargo
FROM Empleado
WHERE dept_id IN
( SELECT dept_id
FROM Departamento
where region_id IN (1,2))

Subconsultas de Fila Mltiple. Ejemplo 3


Mostrar el primer nombre y el apellido de todos los empleados
con un sueldo por encima del promedio y que trabajen con
cualquier empleado cuyo apellido contenga una T
SELECT nombre,apellido
FROM Empleado
WHERE salario >
(SELECT avg(salario)
FROM Empleado
AND dept_id IN
(SELECT dept_id FROM Empleado
where UPPER(apellido) LIKE %T%)

Clusula HAVING con Subconsultas

Usted tambin puede usar subconsultas en la clusula


HAVING.
El Servidor SqlServer primero ejecuta las subconsultas.
El Servidor retorna los resultados en la consulta principal de
la clusula HAVING.

Ejercicio
Mostrar todos los departamentos ( cdigo y sueldo promedio)
que tengan un sueldo promedio mayor que los del
departamento 32
SELECT dept_id, AVG(salario)
FROM Empleado GROUP BY dept_id
HAV ING AVG(salario) >
( SELECT AVG(salario)
FROM Empleado
WHERE dept_id = 32)

Ejercicio Propuesto
Dados los esquemas de relacin:
Persona(DNI, Nombre, Apellidos, Sexo, Telfono, CiudadNac,
FechaNac)
Trabaja(DNI, IdEmpresa, fechainicio, Sueldo, Ciudad,
DNIJefe)
Empresa(IdEmpresa, NombEmp)
Se solicita:
1. Listar las personas femeninas limeas que no trabajan
2. Listar nombre y apellidos de los empleados que ganan ms que
la media de su empresa.
3. Modificar el telefono y ciudad de nacimiento de una persona
dado su dni.

Ejercicio Propuesto
Se solicita:
4. Listar los empleados que ganan ms que el sueldo medio de
Trujillo.
5. Listar nombre y apellidos de las personas de Trujillo que
trabajan en ms de dos empresas.
6. Listar nombre y apellidos de las personas que trabajan y que
tiene la fecha de ingreso mas antigua.
7. Listar nombre y apellidos de las personas que slo trabajan en
una empresa y ganan ms que la media de sueldos piuranos.
8. Listar el nombre de la empresa donde se da el sueldo maximo
9. Subir un 10% el sueldo de los empleados que tengan un jefe
que sea de alguna ciudad que empiece por M y tenga 5 letras

FIN

Das könnte Ihnen auch gefallen