¿Qué hace exactamente SELECT?

En SQL, SELECT sirve para pedir datos a una base de datos. No los modifica, no los borra, no los crea: solo los recupera y te los muestra. Es una operación de solo lectura, lo que significa que puedes practicar con SELECT sin ningún riesgo de alterar nada.

Imagina que tienes una base de datos con información de ventas de tu empresa. Cada venta es una fila. Cada detalle de esa venta (fecha, producto, importe, vendedor) es una columna. Con SELECT puedes decirle a la base de datos: "dame todas las ventas de este mes" o "dame solo el nombre y el importe de los pedidos superiores a 500€".

La estructura mínima de un SELECT

Todo SELECT necesita al menos dos partes: qué quieres ver y de dónde lo quieres sacar.

SELECT nombre_columna
FROM nombre_tabla;

Veamos un ejemplo con una tabla llamada clientes que tiene las columnas nombre, email y ciudad:

SELECT nombre
FROM clientes;

Resultado: una lista con todos los nombres de la tabla clientes. Solo la columna nombre, nada más.

Seleccionar varias columnas

Para traer más de una columna, las separas con comas:

SELECT nombre, email, ciudad
FROM clientes;

El orden en el que las escribes determina el orden en que aparecen en el resultado. Si quieres mostrar primero la ciudad y luego el nombre, simplemente cambia el orden.

Seleccionar todas las columnas con *

Si quieres ver todas las columnas de una tabla sin escribirlas una por una, usa el asterisco:

SELECT *
FROM clientes;

Es útil para explorar una tabla nueva y ver qué contiene. En producción o en consultas definitivas, es mejor especificar las columnas que necesitas: es más eficiente y más claro.

Filtrar resultados con WHERE

El SELECT sin filtros trae todos los registros de la tabla. La mayoría de las veces no quieres eso: quieres datos específicos. Para eso se añade la cláusula WHERE:

SELECT nombre, email
FROM clientes
WHERE ciudad = 'Madrid';

Esto trae solo los clientes cuya ciudad sea Madrid. Nada más. Las condiciones de texto van entre comillas simples en SQL estándar.

Condiciones numéricas y de comparación

Con números no hacen falta comillas:

SELECT *
FROM pedidos
WHERE importe > 500;

Puedes usar los operadores habituales: =, >, <, >=, <=, y <> (este último significa "distinto de").

Combinar condiciones con AND y OR

SELECT *
FROM pedidos
WHERE ciudad = 'Barcelona'
  AND importe > 200;

AND exige que se cumplan las dos condiciones. OR basta con que se cumpla una. Cuando mezclas ambas, usa paréntesis para dejar claro el orden de evaluación:

SELECT *
FROM pedidos
WHERE (ciudad = 'Madrid' OR ciudad = 'Barcelona')
  AND importe > 200;

Ordenar los resultados con ORDER BY

Por defecto, SQL no garantiza ningún orden en los resultados. Si quieres que vengan ordenados, lo indicas explícitamente:

SELECT nombre, importe
FROM pedidos
ORDER BY importe DESC;

DESC ordena de mayor a menor (descendente). ASC ordena de menor a mayor y es el valor por defecto si no escribes nada.

Limitar la cantidad de resultados con LIMIT

Si la tabla tiene miles de filas y solo quieres ver las primeras para hacerte una idea del contenido:

SELECT *
FROM clientes
LIMIT 10;

Esto devuelve exactamente 10 filas. En SQL Server y Oracle la sintaxis es diferente (TOP 10 y ROWNUM respectivamente), pero el concepto es el mismo.

Resumen: estructura completa de un SELECT

Un SELECT con todas sus cláusulas básicas tiene este orden:

SELECT columna1, columna2
FROM tabla
WHERE condicion
ORDER BY columna1 ASC
LIMIT 20;
Cláusula Para qué sirve ¿Obligatoria?
SELECT Qué columnas mostrar
FROM De qué tabla leer
WHERE Filtrar filas por condición No
ORDER BY Ordenar los resultados No
LIMIT Número máximo de filas No

¿Dónde puedo practicar sin instalar nada?

Si quieres probar estas consultas ahora mismo sin instalar ninguna base de datos en tu equipo, tienes varias opciones gratuitas online: SQLiteOnline, DB Fiddle o la consola integrada de Supabase si ya tienes una cuenta. Crea una tabla de prueba con datos inventados y empieza a hacer consultas. La práctica con datos reales es lo que acelera el aprendizaje.

Con esto ya tienes la base para entender y escribir tus primeras consultas SQL. El siguiente paso, cuando te sientas cómodo con SELECT y WHERE, es aprender JOIN para cruzar datos de varias tablas. Pero eso merece su propio artículo.