Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una subconsulta es una consulta contenida dentro de otra consulta o una sentencia SQL. Estas se
usan para comparar un valor con una o varias filas con el fin de obtener un resultado.
Las
subconsultas
pueden
usarse
en
la
clausula
WHERE
de
la
sentencia SELECT, INSERT, UPDATEy DELETE. Adems de ello podemos usar los operadores
lgicos y de comparacin para manipular la condicin establecida.
Las subconsultas que retornen varias filas solo pueden operarse con operadores de mltiples
valores como el ALL o IN.
El operador BETWEEN no puede usarse con una subconsulta, pero si puede ser usado dentro
de la subconsulta.
Ejemplo
Considera la siguiente tabla CLIENTE:
Tabla CLIENTE
Seleccione los clientes que tengan una edad mayor que el promedio de todas las edades:
SELECT * FROM CLIENTE
En la anterior subconsulta usamos el operador de comparacin mayor qu. En el lado izquierda esta
el atributo EDAD que vamos a consultar y en el lado derecho hay una subconsulta que devolver un
solo valor, el promedio de las edades.
Sintaxis
SELECT columna1,
FROM tabla1,
WHERE columna1 OPERADOR
(SELECT columna1,
FROM tabla1,
[WHERE])
La subconsulta mas bsica y sencilla es aquella que devuelve un solo resultado o fila, por lo que puede
compararse con un operador binario( < , > , = , != , etc). Para este y los otros ejemplos usaremos la
siguiente tabla llamada CLIENTE:
Tabla CLIENTE
Obtenga el nombre, apellido y telfono de los clientes que tengan la mayor edad:
En esta subconsulta usamos el operador de igualdad, para declarar que necesitamos los registros que
tengan el valor maximo de edades dentro de la tabla.
Resultado de la consulta
Para este ejemplo usamos el operador ALL en el WHERE. Bsicamente lo que hicimos fue cotejar
los primero 5 registros con los ltimos 5, comparando las edades para encontrar solo los clientes que
tuvieran edades nicas.
Seleccione los clientes cuya edad est entre el mnimo y el promedio de las edades (MIN,AVG):
SELECT ID,NOMBRE, APELLIDO, EDAD
FROM CLIENTE
WHERE
Resultados de la consulta
Las subconsultas tambin nos permiten insertar informacin dentro de una tabla. Obviamente la tabla
donde asignaremos los datos debe tener la misma estructura de los resultados de la consulta.
Sintaxis
INSERT INTO tabla (columna1,)
SELECT columna1,
FROM tablaX,
WHERE VALOR OPERADOR SUBCONSULTA
Ejemplo
Inserte en la tabla CLIENTES_MADUROS los clientes que tengan una edad mayor o igual al
promedio de edades de la tabla CLIENTE:
Usar subconsultas al modificar las filas de una tabla permite flexibilidad a la hora de asignar valores
especficos a una columna. Para implementar una subconsulta en la sentencia UPDATE debemos
incluirla en la clausula WHERE.
Sintaxis
UPDATE tabla
SET columna = nuevoValor
Asigne al vendedor con mayor volumen de ventas un incremento del 15% en su salario base:
UPDATE EMPLEADO
SET SALARIO = SALARIO*1,15
WHERE ID IN
Ejemplo 2
Asigne prioridad ALTA(A) a los clientes que hayan comprado mas de 2000 dolares:
UPDATE CLIENTE
SET PRIORIDAD=A
Las subconsultas pueden ser usadas para eliminar registros de una tabla en SQL. Simplemente
debemos incluir la subconsulta en la sentencia WHERE para personalizar aquellas filas a eliminar.
Sintaxis
DELETE FROM TABLE_NAME
WHERE VALOR OPERADOR SUBCONSULTA
Ejemplo 1
Elimine las facturas de aquellos clientes que han sido considerados como prioridad
BAJA(B):
DELETE FROM FACTURA