Tu primera consulta en SQL usa la instrucción SELECT para pedirle a la base de datos que te muestre información específica de una tabla.
Una tarde en el almacén de Bimbo
Imagina que es martes por la tarde en una planta de Bimbo en Monterrey. Sofía, analista de datos con seis meses en el puesto, recibe un mensaje urgente de su jefa: necesitan saber cuántos productos tienen menos de 50 unidades en el inventario. El sistema tiene miles de registros. Revisarlos uno por uno tomaría horas.
Sofía abre su terminal, escribe tres líneas de código y en menos de dos segundos aparece la respuesta completa en su pantalla. Su jefa queda impresionada. Sofía no hizo magia. Escribió una consulta SELECT con una condición simple.
Eso es exactamente lo que vas a aprender hoy.
La estructura que está detrás de todo
Antes de escribir código, necesitas entender una idea fundamental. Una base de datos relacional guarda información en tablas. Una tabla es como una hoja de cálculo: tiene columnas (los campos) y filas (los registros).
Imagina una tabla llamada productos en el sistema de Bimbo. Tiene estas columnas: id, nombre, categoria, precio, y stock. Cada fila es un producto diferente, como el pan de caja Wonder o las galletas Marinela.
Cuando escribes una consulta SELECT, le dices a la base de datos tres cosas: qué columnas quieres ver, de qué tabla, y bajo qué condición. Esas tres piezas son la base de casi todo lo que harás en SQL.
Tu primera instrucción SELECT
La forma más básica de una consulta SELECT se ve así:
SELECT nombre, precio
FROM productos;
Esta instrucción le dice a la base de datos: "muéstrame el nombre y el precio de todos los productos". El resultado sería una lista con dos columnas y tantas filas como productos existan en la tabla.
Si quieres ver todas las columnas sin escribirlas una por una, usas el asterisco:
SELECT *
FROM productos;
El asterisco significa "todo". Es útil cuando exploras una tabla por primera vez y no sabes qué columnas tiene. Pero en sistemas reales, es mejor pedir solo las columnas que necesitas. Pedir todo cuando solo necesitas algo es como pedir toda la carta del restaurante cuando solo tienes hambre de tacos.
Agregar condiciones con WHERE
Aquí es donde la consulta se vuelve poderosa. La cláusula WHERE te permite filtrar los resultados para ver solo las filas que cumplen una condición.
Volvamos con Sofía en Bimbo. Ella necesita los productos con menos de 50 unidades en stock. Su consulta es:
SELECT nombre, stock
FROM productos
WHERE stock < 50;
SQL revisa cada fila de la tabla productos. Si el valor en la columna stock es menor a 50, incluye esa fila en el resultado. Si no, la ignora. De miles de registros, solo aparecen los que importan en ese momento.
Puedes usar diferentes operadores de comparación en la cláusula WHERE:
=significa "igual a"<significa "menor que">significa "mayor que"<=significa "menor o igual que">=significa "mayor o igual que"<>o!=significa "diferente de"
Por ejemplo, si quieres ver solo los productos de la categoría "pan":
SELECT nombre, precio
FROM productos
WHERE categoria = 'pan';
Observa que el texto va entre comillas simples. En SQL, los textos siempre usan comillas simples. Los números no necesitan comillas.
Combinar condiciones con AND y OR
A veces necesitas filtrar por más de una condición al mismo tiempo. SQL tiene dos palabras clave para eso: AND y OR.
AND significa que ambas condiciones deben cumplirse. Por ejemplo, productos de categoría "pan" que además cuesten más de $20:
SELECT nombre, precio
FROM productos
WHERE categoria = 'pan'
AND precio > 20;
OR significa que basta con que se cumpla una de las dos condiciones. Por ejemplo, productos de categoría "pan" o productos de categoría "galletas":
SELECT nombre, categoria
FROM productos
WHERE categoria = 'pan'
OR categoria = 'galletas';
En el sistema de Liverpool, un analista podría usar AND para encontrar artículos de electrónica con precio mayor a $5,000 y stock menor a 10 unidades. Esa combinación le diría exactamente qué productos caros están por agotarse.
Ordenar los resultados con ORDER BY
Los resultados de una consulta no siempre llegan en el orden que necesitas. La cláusula ORDER BY te permite organizarlos.
Para ver los productos ordenados de menor a mayor precio:
SELECT nombre, precio
FROM productos
ORDER BY precio ASC;
ASC significa ascendente (de menor a mayor). Si quieres de mayor a menor, usas DESC:
SELECT nombre, precio
FROM productos
ORDER BY precio DESC;
En FEMSA, un analista podría ordenar las ventas por sucursal del mes de diciembre usando ORDER BY para identificar rápidamente cuáles tiendas OXXO tuvieron el mayor volumen de ventas. Con millones de transacciones diarias en su red, ese tipo de consulta puede ejecutarse en segundos.
Limitar los resultados con LIMIT
En bases de datos grandes, a veces solo quieres ver los primeros resultados. La cláusula LIMIT te permite controlar cuántas filas recibes.
Por ejemplo, los 5 productos más caros:
SELECT nombre, precio
FROM productos
ORDER BY precio DESC
LIMIT 5;
Esta consulta ordena todos los productos de mayor a menor precio y luego te muestra solo los primeros 5. Es una combinación muy común en análisis de datos. Mercado Libre, que procesa más de 12 millones de transacciones al día en toda América Latina, usa ese tipo de filtros constantemente para generar sus listas de "productos más vendidos".
Errores comunes al escribir tu primera consulta
El error más frecuente entre personas que empiezan es olvidar el punto y coma al final de la consulta. En muchos sistemas, el punto y coma le indica a la base de datos que la instrucción terminó. Sin él, el sistema espera más código o arroja un error confuso.
Otro error muy común es mezclar comillas. Si usas comillas dobles donde van simples, o viceversa, la consulta falla. Recuerda: los textos en SQL siempre van entre comillas simples, como 'pan' o 'Liverpool'.
También es frecuente escribir mal el nombre de una tabla o columna. Si la columna se llama stock y tú escribes Stock con mayúscula, algunos sistemas de bases de datos no la reconocen. La mayoría de los equipos de desarrollo usan nombres en minúsculas para evitar confusiones.
Finalmente, muchas personas escriben WHERE sin recordar que va después de FROM. El orden de las cláusulas importa: primero SELECT, luego FROM, luego WHERE, luego ORDER BY, y finalmente LIMIT.
El regreso de Sofía
Aquella tarde en Monterrey, Sofía no tenía ningún superpoder especial. Tenía práctica con una herramienta que lleva más de 50 años siendo el estándar de la industria. Su consulta completa, la que impresionó a su jefa, fue algo similar a esto:
SELECT nombre, categoria, stock
FROM productos
WHERE stock < 50
ORDER BY stock ASC;
Cuatro líneas. Dos segundos de ejecución. Una decisión de negocio tomada con datos reales. Así funciona SQL en la práctica cotidiana de miles de empresas mexicanas.
Ahora ya tienes las herramientas para escribir esa misma consulta. Practica con los ejemplos de esta lección, cambia los valores, experimenta con las condiciones. Cada consulta que escribas te acerca un paso más a ese puesto de analista de datos que puede pagarte entre $18,000 y $30,000 al mes en empresas como las que vimos hoy.