Gráffica Academy
Creado para la ComunidadAprende a programar
Escribir al equipo

Contacta con el equipo de Gráffica Estudio Academy.

IG @ X in
SQL · Módulo 10

Subconsultas y CASE

Los JOIN combinan tablas en horizontal. Hoy ves otra herramienta: meter una consulta SQL completa DENTRO de otra, como muñecas rusas. Se llaman subconsultas, y junto con CASE (el "si esto, entonces aquello" de SQL) son la puerta de entrada a consultas que de verdad razonan sobre los datos.

Subconsultas: una consulta dentro de otra

Una subconsulta es un SELECT completo metido entre paréntesis, dentro de otra consulta. Se ejecuta primero la de dentro, y su resultado alimenta a la de fuera.

EXISTS: ¿hay al menos una fila?

EXISTS comprueba si una subconsulta devuelve al menos una fila — no le importa cuántas, ni su contenido, solo si hay alguna o ninguna. Es muy eficiente, porque el motor puede parar en cuanto encuentra la primera coincidencia.

exists.sql
1
Pulsa "Ejecutar" para ver el resultado.

ANY y ALL

Comparan un valor contra todos los resultados de una subconsulta a la vez.

ANY

La condición se cumple si es cierta para AL MENOS UNO de los valores de la subconsulta.

ALL

La condición se cumple solo si es cierta para TODOS los valores de la subconsulta.

any-all.sql
1
Pulsa "Ejecutar" para ver el resultado.

Copiar datos: SELECT INTO e INSERT INTO SELECT

SELECT ... INTO nueva_tabla

Crea una tabla NUEVA a partir del resultado de un SELECT (sintaxis de SQL Server; en MySQL y SQLite el equivalente es CREATE TABLE ... AS SELECT).

INSERT INTO ... SELECT

Copia filas desde una consulta hacia una tabla que YA EXISTE. Muy usado para archivar datos antiguos en otra tabla antes de borrarlos.

insert-select.sql
1
Pulsa "Ejecutar" para ver el resultado.

CASE: si esto, entonces aquello

CASE es el condicional de SQL: evalúa condiciones en orden y devuelve un valor distinto según cuál se cumpla primero. Se usa dentro de un SELECT, como si fuera una columna calculada.

case.sql
1
Pulsa "Ejecutar" para ver el resultado.

Funciones para trabajar con NULL

COALESCE() (o IFNULL() en SQLite/MySQL) devuelve el primer valor que no sea NULL de una lista — perfecto para mostrar un valor por defecto en vez de un hueco vacío.

coalesce.sql
1
Pulsa "Ejecutar" para ver el resultado.

Ponlo a prueba

Comprueba lo que has aprendido

3 preguntas · sin nota, solo para afianzar lo de hoy

1. ¿Qué comprueba EXISTS?

2. ¿Qué hace CASE en un SELECT?

3. ¿Para qué sirve COALESCE (o IFNULL)?

Síguenos IG @ X in