Practica Oracle
Enviado por wikiaula • 1 de Noviembre de 2014 • 304 Palabras (2 Páginas) • 160 Visitas
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.
• 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.
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.
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;
...