Capitulo17 Subconsultas Avanzadas 26
Subconsultas Avanzadas
Universidad del Cauca – FIET – Departamento de Sistemas
Objetivos
Después de este capítulo, usted estará en
capacidad de:
17-2
Escribir una subconsulta de múltiples columnas
Escribir una subconsulta en la cláusula FROM
Usar subconsultas escalares en SQL
Describir los tipos de problemas que pueden
ser resueltos con subconsultascorrelacionadas
Escribir subconsultas correlacionadas
Modificar y borrar filas usando subconsultas
correlacionadas
Usar los operadores EXISTS y NOT EXISTS
Usar la cláusula WITH
Universidad del Cauca – FIET – Departamento de Sistemas
Subconsultas
Consulta Principal:
SELECT …
FROM …
WHERE …
Se pueden usar para:
Subconsulta:
( SELECT …
FROM …
WHERE … )
17-3
Proveer valores a las
cláusulasWHERE,
HAVING y START WITH
de una sentencia
SELECT
Seleccionar las filas a
insertarse en una
sentencia INSERT o
CREATE TABLE
Seleccionar las filas
que se incluyen en una
vista o instantánea con
las sentencias CREATE
VIEW o CREATE
SNAPSHOT
Universidad del Cauca – FIET – Departamento de Sistemas
Subconsultas
Consulta Principal:
SELECT …
FROM …
WHERE …
Se pueden usar para:
Subconsulta:
(SELECT …
FROM …
WHERE … )
17-4
Definir uno o más
valores que se
modifican a filas
existentes en una tabla
con la sentencia
UPDATE
Usada en la cláusula
FROM de la sentencia
SELECT, permite definir
las filas de una tabla
que serán operadas
por un consulta
principal o
contenedora. Opera de
igual forma en las
sentencias INSERT,
UPDATE y DELETE
Universidad del Cauca – FIET – Departamento de SistemasSintaxis de las subconsultas
SELECT
FROM
WHERE
FROM
[WHERE
ListaDeColumnas
TablaExterna
Expresión Operador
(SELECT
ListaDeColumnas
TablaInterna
Expresión Operador]);
La subconsulta (consulta interna o consulta anidada) se ejecuta antes
de la consulta principal. Esto no aplica en subconsultas correlacionadas
El resultado de la subconsulta se usa para ejecutar la consulta principal
Las subconsultas se pueden ubicar en las cláusulas WHERE, HAVING y
FROM
El Operador puede ser de dos tipos:
17-5
De fila simple como >, >=, <, <=, =, <>
De múltiples filas como IN, ANY, ALL
Universidad del Cauca – FIET – Departamento de Sistemas
Subconsultas de múltiples
columnas
Consulta Principal:
Cuáles empleados tienen el mismo cargo
y el mismo jefe que los empleados del
Depto 30?Subconsulta:
Cargos y Jefes del Dep=30?
17-6
Universidad del Cauca – FIET – Departamento de Sistemas
Subconsultas de múltiples
columnas
Cada fila de la consulta principal es
comparada con las filas resultantes de la
subconsulta, comparando todas las columnas
al mismo tiempo, conocida como comparación
emparejada (pairwise comparison)
17-7
Universidad del Cauca – FIET – Departamento deSistemas
Subconsulta de comparación
dispareja
Los resultados son los
mismos que la
consulta emparejada
de la diapositiva
anterior SOLO por
casualidad
Las dos consultas
responden a lógicas
distintas
Los resultados de
cada subconsulta se
analizan por separado
(desparejadas)
17-8
Universidad del Cauca – FIET – Departamento de Sistemas
Subconsultas emparejadas y
disparejas
Empleados delmismo cargo y
departamento de los empleados
con nombre MARTINEZ y
ZAMBRANO
17-9
Universidad del Cauca – FIET – Departamento de Sistemas
Subconsultas en la cláusula
FROM
Consultar los salarios más altos de cada departamento de la
empresa
La subconsulta en la cláusula FROM es conocida como una
Vista en Línea y sólo existe durante la ejecución de la
sentencia SELECT actual
17-10
Universidaddel Cauca – FIET – Departamento de Sistemas
Subconsultas escalares
Una subconsulta escalar es aquella subconsulta
que retorna una sola columna y una sola fila
En Oracle 8i las subconsultas escalares sólo se
soportaban en:
En Oracle 9i, las subconsultas escalares se
pueden usar también en:
Sentencias SELECT (cláusulas FROM y WHERE)
Cláusula VALUES de la sentencia INSERT...
Regístrate para leer el documento completo.