Contenido de esta guía
Qué controla SELECT
SELECT define la lista de salida: las columnas y expresiones que verá quien recibe el resultado. Puede devolver columnas de una tabla, valores literales, operaciones, funciones y alias.
Piensa en una consulta como una preparación de datos. FROM aporta las filas disponibles, WHERE descarta las que no cumplen una condición y SELECT construye las columnas finales. El orden escrito empieza por SELECT, pero eso no significa que sea la primera decisión lógica.
Sintaxis mínima
SELECT expresion_1 [AS alias_1],
expresion_2 [AS alias_2]
FROM tabla;Separa cada expresión con una coma. AS asigna un encabezado legible al resultado, pero no modifica el nombre de la columna almacenada.
Datos de partida
| id | nombre | precio | stock |
|---|---|---|---|
| 1 | Ratón | 24,90 | 18 |
| 2 | Teclado | 49,50 | 7 |
| 3 | Monitor 24 | 179,00 | 4 |
| 4 | Portátil Pro | 999,00 | 0 |
Ejemplo guiado: calcular una oferta
SELECT nombre,
precio,
ROUND(precio * 0.85, 2) AS precio_oferta
FROM productos
ORDER BY id
LIMIT 4;| nombre | precio | precio_oferta |
|---|---|---|
| Ratón | 24,9 | 21,16 |
| Teclado | 49,5 | 42,07 |
| Monitor 24 | 179,0 | 152,15 |
| Portátil Pro | 999,0 | 849,15 |
nombre y precio proceden de la tabla. precio_oferta se calcula para cada fila y solo existe en el resultado. El alias evita que el encabezado sea toda la expresión.
Usa SELECT * para explorar, no por costumbre. Pedir todas las columnas puede transferir datos innecesarios y hace que el resultado cambie cuando se modifica la estructura de la tabla. En código mantenible, nombra las columnas que realmente necesita la tarea.
Errores frecuentes
Olvidar una coma
SELECT nombre precio
FROM productos;Algunos motores interpretan precio como alias de nombre. Para solicitar dos columnas escribe SELECT nombre, precio.
Confundir el alias con un dato guardado
El alias solo etiqueta el resultado de esa consulta. No crea una columna nueva ni cambia la tabla.
Práctica: valor del inventario
Encuentra los tres productos con mayor valor almacenado
Devuelve nombre, stock y precio * stock como valor_stock. Ordena de mayor a menor y usa id como desempate.
SELECT.AS valor_stock.Solución razonada
SELECT nombre,
stock,
ROUND(precio * stock, 2) AS valor_stock
FROM productos
ORDER BY valor_stock DESC, id
LIMIT 3;El resultado comienza con Disco SSD (801,0), Auriculares (768,9) y Monitor 24 (716,0). El cálculo se repite para cada fila antes de ordenar el resultado.
Diseña una salida lista para compartir
Construye una consulta para los cuatro primeros productos que devuelva id + 1000 como codigo_interno, nombre, el precio con un 21 % añadido y redondeado a dos decimales como precio_con_iva, y el literal 'EUR' como moneda. Ordena por id.
Criterio de éxito: deben aparecer cuatro columnas con esos encabezados; la primera fila empieza por 1001 · Ratón · 30,13 · EUR y la cuarta por 1004 · Portátil Pro · 1208,79 · EUR.
SELECT se convierte en una columna del resultado.AS para nombrar las dos expresiones calculadas y escribe 'EUR' directamente en la lista de salida.ORDER BY id.Solución razonada
SELECT id + 1000 AS codigo_interno,
nombre,
ROUND(precio * 1.21, 2) AS precio_con_iva,
'EUR' AS moneda
FROM productos
ORDER BY id
LIMIT 4;| codigo_interno | nombre | precio_con_iva | moneda |
|---|---|---|---|
| 1001 | Ratón | 30,13 | EUR |
| 1002 | Teclado | 59,89 | EUR |
| 1003 | Monitor 24 | 216,59 | EUR |
| 1004 | Portátil Pro | 1208,79 | EUR |
La lista de SELECT mezcla una expresión numérica, una columna almacenada, otro cálculo con alias y un valor literal. La tabla de origen no cambia: solo cambia la forma del resultado.
Compatibilidad entre motores
La lista de selección pertenece al núcleo de SQL. Las diferencias aparecen en funciones, operadores, conversión de tipos y reglas para citar identificadores. El uso de AS para alias de columnas es ampliamente compatible.
Qué debes recordar
SELECTconstruye las columnas del resultado.- Puede incluir cálculos, funciones, valores y alias.
- Un alias no modifica la tabla.
- Elegir columnas explícitas suele ser más claro que utilizar
*.
Conceptos relacionados
Fuentes técnicas consultadas
Se utilizaron para comprobar la función de la lista de selección y la sintaxis general. La explicación y los ejemplos son originales.