4

Click here to load reader

Consultas anidadas o subconsultas oracle

Embed Size (px)

Citation preview

Page 1: Consultas  anidadas o subconsultas oracle

Diseña Bases de Datos Avanzadas Profesor: Miguel Ángel Fuentes García CECyTEM Tequixquiac

Consultas anidadas o Subconsultas

S.Q.L.

¿Cuándo subconsultas?

¿Quién tiene un salario superior al de Jones

S.Q.L.

Sintaxis de una subconsulta

La subconsulta se ejecuta una vez y antes de la consulta principal.

El resultado de ella es usado por la consulta principal externa.

S.Q.L.

Guía Uso de Subconsultas

Encierre las subconsultas entre paréntesis.

No añada una cláusula ORDER BY a una subconsulta.

Utilice operadores a nivel de fila para subconsultas que devuelvan solo una fila MONOREGISTRO.

Page 2: Consultas  anidadas o subconsultas oracle

Diseña Bases de Datos Avanzadas Profesor: Miguel Ángel Fuentes García CECyTEM Tequixquiac

Utilice operadores que actúan sobre varios registros para subconsultas que devuelven

más de una fila MULTIREGISTRO.

S.Q.L.

Subconsultas Mono-registro

Devuelven un único registro.

Se utilizan operadores de comparación (=, >, >=, <, <= y <>).

Ejemplo:

S.Q.L.

Subconsultas Multi-registro

Devuelven más de un registro

Se utilizan comparadores multiregistro:

o IN TRUE si se encuentra en la lista.

o ANY (y sinónimo SOME) TRUE si la condición se cumple con algún registro de la lista devuelta por la subconsulta.

o ALL TRUE si la condición se cumple con todos los registros de la lista devuelta por la subconsulta.

El operador NOT puede ser utilizado con los operadores IN, ANY y ALL.

Page 3: Consultas  anidadas o subconsultas oracle

Diseña Bases de Datos Avanzadas Profesor: Miguel Ángel Fuentes García CECyTEM Tequixquiac

S.Q.L.

Ejemplo subc. Multi-registro

S.Q.L.

Subcons. en cláusula FROM

Puede utilizar una subconsulta en una cláusula FROM de una sentencia SELECT:

Este ejemplo muestra los nombres, salarios, núm. Departamentos y media de salarios, de todos los empleados que cobran más que la media de salarios de su departamento.

Ejercicio: Crear las siguientes tablas.

Page 4: Consultas  anidadas o subconsultas oracle

Diseña Bases de Datos Avanzadas Profesor: Miguel Ángel Fuentes García CECyTEM Tequixquiac

Datos

Realizar las siguientes consultas y anotar lo que sucede.

Select count(*) from(select * from sucursal);

Select nombre_sucursal from sucursal where fecha_inaguracion =(select

max(fecha_inaguracion) from sucursal);

Select count(*) from sucursal where id_municipio in(select id_municipio from municipio where

id_municipio>2);

Crear una base de datos llamada surcursal_2 con la misma estructura que sucursal pero vacia y

realizer las siguentes consultas:

Select * from sucursal_2;

Insert into sucursal_2 (select * from sucursal);

Select * from sucursal_2;