Saltar al contenido

Consultar con SELECT.

El SELECT es el verbo más usado de todo SQL. Su gracia: declaras qué quieres — no cómo conseguirlo. El motor decide el camino más eficiente.

01La forma canónica

SELECT  columna1, columna2
FROM    tabla
WHERE   condición
ORDER BY columna [ASC|DESC]
LIMIT   n;

Léelo de arriba abajo: de la tabla T, filtrar las filas que cumplen C, mostrar columnas X, ordenarlas y limitarlas.

02WHERE — filtrar filas

=
Comparación
=, <>, <, >, <=, >=
Combinación
AND, OR, NOT para encadenar condiciones.
~
Patrones
LIKE 'A%' empieza por A, LIKE '%a%' contiene una a.
Listas y rangos
IN (1,2,3) y BETWEEN 10 AND 20.
SELECT nombre, precio FROM productos
WHERE precio BETWEEN 5000 AND 20000
  AND nombre LIKE 'C%'
ORDER BY precio DESC
LIMIT 5;

03ORDER BY — ordenar

ASC (ascendente, por defecto) o DESC. Puedes ordenar por varias columnas; si la primera empata, el motor desempata con la segunda.

04LIMIT — cortar el resultado

Si pides los 10 productos más caros, no quieres descargar los 10 millones que tiene la base. LIMIT 10 le dice al motor que pare al décimo. Junto con ORDER BY es la base de la paginación.

05Laboratorio · explora 10 filas

~/sql-labpostgres · in-memory
query.sql
-- Top 5 productos más caros
SELECT nombre, precio FROM productos
ORDER BY precio DESC
LIMIT 5;
listo
productos
idINT🔑nombreVARCHAR(60)categoriaVARCHAR(30)precioDECIMAL(10,2)stockINT
1Café Sierra NevadaCafé3200018
2Café del HuilaCafé2800025
3Café TolimaCafé300006
4Té verde1200012
5Té manzanilla950030
6Galletas integralSnack60004
7Chocolate amargoSnack220008
8Azúcar morenaDespensa450025
9PanelaDespensa320040
10Cacao en polvoDespensa1500011
Patrón mental

Cuando escribas un SELECT complejo, lee tu propia consulta empezando por el FROM: “de productos, filtrar X, ordenar por Y, mostrar Z”. Casi todos los bugs aparecen leyendo así.

06Desafíos · ponete a prueba

Tres retos sobre la misma tabla productos, de menor a mayor dificultad. Escribí tu consulta y dale Comprobar: se valida por el resultado, así que cualquier camino correcto sirve.

Traé el nombre y el precio de todos los productos de la categoría 'Té'.

Básico

Listá los productos con stock menor a 10, del stock más bajo al más alto. Mostrá nombre y stock.

Intermedio

Mostrá los 3 productos más caros (nombre y precio), del más caro al más barato.

Avanzado