Proyecto
2.1. Objetivo:
* Escribir una consulta de múltiples columnas
* Describir y explicar el comportamiento de las sub consultas cuando
* valores nulos son recuperados.
* Escribir una sub consulta en la cláusula FROM
* Utilizar sub consultas escalares en SQL
* Describir los tipos de problemas que pueden ser resueltos con sub consultascorrelacionadas.
* Escribir sub consultas correlacionadas.
* Actualizar y eliminar filas utilizando sub consultas correlacionadas.
* Usar los operadores EXISTS y NOT EXISTS.
* Usar la cláusula WITH.
SELECT…
FROM…
WHERE…
(SELECT…
FROM…
WHERE…)
Main query
Sub query
2.2. ¿Qué es una sub consulta?
Una sub consulta es unasentencia SELECT que es incrustada en una cláusula de otra sentencia SQL, llamada sentencia padre.
La sub consulta (consulta interna) obtiene un valor que es usado por la sentencia padre. Usar una sub consulta anidada es equivalente a ejecutar dos consultas secuenciales y utilizar el resultado de la consulta interna como valor de búsqueda en la consulta externa (consulta principal).
Las subconsultas pueden ser usadas para los siguientes propósitos:
* Proveer valores para condiciones en cláusulas WHERE, HAVING y START WITH de sentencias SELECT.
* Definir el conjunto de filas a ser insertadas en una tabla de una sentencia INSERT o CREATE TABLE.
* Definir el conjunto de filas a ser incluidas en una vista o snapshot en una sentencia CREATE VIEW o CREATE SNAPSHOT.
*Definir uno o más valores para ser asignados a filas existentes en una sentencia UPDATE.
* Definir una tabla para ser operada por el contenido de una consulta.
(Esto se hace colocando la sub consulta en la cláusula FROM. Esto puede hacerse también en sentencias INSERT, UPDATE y DELETE.
Nota: Una sub consulta es evaluada en una ocasión para toda la sentencia padre.
SELECT select_list
FROMtable
WHERE expr operator
(SELECT select_list
FROM table)
2.3. Sub consultas
Se pueden construir sentencias poderosas utilizando sub consultas. Las sub consultas pueden ser muy útiles cuando necesites seleccionar filas de una tabla con una condición que dependa de los datos de la misma u otra tabla. Las sub consultas son muy útiles para escribir sentencias SQL que necesitenvalores de un o más valores condicionales desconocidos.
Donde:
Operator incluye un operador de comparación como >, = o IN.
Nota: los operadores de comparación se encuentran en dos clases: operadores de fila única (>, =, >=, <, <>, <=) y operadores de múltiples filas
(IN, ANY, ALL)
Las sub consultas son a menudo referidas como sentencias SELECT anidadas, sub-SELECT, oSELECT internos.
Las consultas internas y externas pueden recuperar datos de la misma tabla o de tablas diferentes.
2.4. Usando una sub consulta
En el ejemplo anterior, la consulta interna obtiene el salario del empleado con número 149. La consulta externa utiliza el resultado de la consulta interna para desplegar los nombres de todos los empleados ganen más que el empleado 149.Ejemplo:
Despliegue los nombres de todos los empleados que ganen menos que el salario promedio de la compañía.
SELECT last_name, job_id, salary
FROM hr.employees
WHERE salary < (SELECT AVG (salary)
FROM hr.employees)
2.5. Sub consultas de múltiples columnas
Hasta ahora hemos escrito sub consultas de filas únicas y sub consultas de múltiples filasdonde solo una columna es obtenida por la sentencia SELECT interna y estas son usadas para evaluar la expresión en la sentencia SELECT padre. Si quieres comparar dos o más columnas, debemos escribir una cláusula WHERE compuesta usando operadores lógicos. El uso de sub consultas de múltiples columnas, puede combinar condiciones WHERE duplicadas en una simple cláusula WHERE.
Sintaxis:...
Regístrate para leer el documento completo.