Tema SQL
SELECT básico
Consulta declarativa para leer filas de tablas o vistas: eliges columnas o expresiones, acotas con filtros, ordenas el resultado y limitas cuántas filas devuelve el motor sin recorrer toda la tabla salvo que el plan lo requiera.
Descripción
El SELECT es el punto de partida de casi toda lectura en SQL. Indica qué columnas o expresiones forman cada fila del resultado (proyección), mientras que FROM define el origen de datos y WHERE reduce filas antes de ordenar o paginar. No confundas el orden de escritura con el orden interno de evaluación: primero se resuelve el origen y filtros, luego proyección y orden. Úsalo para informes, APIs, validaciones y cualquier vista materializada en una sola pasada. Comprueba en tu motor la sintaxis exacta de LIMIT, OFFSET o FETCH, y recuerda que alias y comillas en identificadores siguen reglas distintas según el dialecto.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
SELECT lista_columnas_o_expresiones
FROM tabla_o_vista
[ WHERE condición ]
[ ORDER BY columnas [ ASC | DESC ] ]
[ LIMIT n [ OFFSET m ] ];
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- SELECT
- Lista de columnas, expresiones calculadas, alias con AS, funciones escalares o agregadas según contexto, o * / tabla.* para todas las columnas de un origen. Define el «shape» del resultado: nombres y tipos de cada columna devuelta. Si mezclas agregados con columnas no agrupadas, el motor exigirá GROUP BY o fallará según ONLY_FULL_GROUP_BY u reglas equivalentes.
- FROM
- Tabla base, vista, subconsulta entre paréntesis o varias fuentes unidas con JOIN. Aquí fijas el universo de filas antes de WHERE. Los alias de tabla (AS) son casi obligatorios cuando hay más de una fuente o columnas homónimas.
- WHERE
- Predicado por fila antes de agrupar: comparaciones, IN, BETWEEN, LIKE, IS NULL, EXISTS, etc., combinados con AND/OR/NOT. No puede referir alias del SELECT en la mayoría de motores; repite la expresión o usa subconsulta/CTE.
- ORDER BY
- Orden total o parcial del conjunto ya filtrado. ASC (ascendente) o DESC; varias columnas actúan como desempates en orden. Si combinas con LIMIT, el orden determina qué filas son «las primeras N».
- LIMIT / OFFSET
- LIMIT (u operador equivalente) recorta el número de filas devueltas; OFFSET salta un prefijo para paginación. En conjuntos grandes, OFFSET alto puede ser costoso: valora claves «seek» o cursores. La sintaxis exacta (LIMIT/OFFSET, FETCH FIRST, TOP) depende del motor.
Ejemplos
Ejemplo 1
SELECT id, nombre, email
FROM usuarios
WHERE activo = 1
ORDER BY creado_en DESC
LIMIT 20;
Ejemplo 2
SELECT COUNT(*) AS total
FROM pedidos
WHERE estado = 'pendiente';
Temas relacionados
Enlaces internos para seguir leyendo: SELECT, WHERE, JOIN, GROUP BY y el resto de la referencia SQL.
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.