SELECT es el comando más importante de SQL y te permite leer datos de cualquier tabla en una base de datos.
Tu primer día como analista de datos
Imagina que entras a trabajar en el área de e-commerce de Liverpool. Tu jefe te pide una lista de todos los productos disponibles en el sistema. Antes, alguien tenía que abrir un archivo de Excel con miles de filas y buscar manualmente. Tú, en cambio, escribes una sola línea de código y obtienes la respuesta en segundos. Ese comando se llama SELECT, y es la herramienta más poderosa que aprenderás en SQL.
El comando SELECT: tu ventana a los datos
SELECT funciona como una pregunta directa a la base de datos. Tú le dices qué quieres ver y de dónde, y la base de datos te responde con exactamente esa información. La estructura básica tiene solo dos partes obligatorias: el comando SELECT seguido de las columnas que quieres, y la palabra FROM seguida del nombre de la tabla.
Esta estructura se llama el patrón SELECT-FROM, y lo usarás en el 90% de tus consultas.
SELECT columna1, columna2
FROM nombre_tabla;
Así de simple. Dos líneas y ya tienes datos reales.
Cómo leer todos los datos de una tabla
Antes de filtrar o elegir columnas específicas, muchas veces necesitas ver toda la tabla completa. Para eso usas el asterisco *, que en SQL significa "todas las columnas".
Supón que Liverpool tiene una tabla llamada productos con esta información:
| id_producto | nombre | precio | stock |
|---|---|---|---|
| 1 | Televisor 55" | 12500 | 30 |
| 2 | Licuadora | 1200 | 85 |
| 3 | Cafetera | 890 | 120 |
| 4 | Laptop | 18500 | 15 |
Para ver toda esa tabla, escribes:
SELECT *
FROM productos;
Resultado en pantalla:
id_producto | nombre | precio | stock
------------|---------------|---------|------
1 | Televisor 55" | $12,500 | 30
2 | Licuadora | $1,200 | 85
3 | Cafetera | $890 | 120
4 | Laptop | $18,500 | 15
El asterisco es conveniente para explorar datos nuevos. Sin embargo, en proyectos reales es mejor pedir solo las columnas que necesitas. Más adelante verás por qué.
Cómo elegir columnas específicas
Aquí es donde SELECT se vuelve realmente útil. Puedes pedirle a la base de datos que te muestre solo la información que necesitas. Esto hace tus consultas más rápidas y más fáciles de leer.
Siguiendo con el ejemplo de Liverpool, si solo quieres ver el nombre y el precio de los productos, escribes:
SELECT nombre, precio
FROM productos;
Resultado:
nombre | precio
--------------|--------
Televisor 55" | $12,500
Licuadora | $1,200
Cafetera | $890
Laptop | $18,500
La base de datos ignoró las columnas id_producto y stock porque no las pediste. Así de preciso es SQL.
Ejemplo completo con una empresa mexicana
Ahora veamos un caso más cercano a la realidad. FEMSA maneja miles de tiendas OXXO en todo México. Imagina que su base de datos tiene una tabla llamada empleados con la siguiente estructura:
| id_empleado | nombre | puesto | salario | ciudad |
|---|---|---|---|---|
| 1 | Ana Torres | Cajera | 8500 | Monterrey |
| 2 | Carlos Reyes | Gerente | 18500 | CDMX |
| 3 | Diana López | Cajera | 8500 | Guadalajara |
| 4 | Roberto Méndez | Supervisor | 12500 | Monterrey |
| 5 | Sofía Castillo | Gerente | 19000 | CDMX |
Si el área de recursos humanos quiere ver solo los nombres y ciudades de todos los empleados, la consulta es:
SELECT nombre, ciudad
FROM empleados;
Resultado:
nombre | ciudad
----------------|------------
Ana Torres | Monterrey
Carlos Reyes | CDMX
Diana López | Guadalajara
Roberto Méndez | Monterrey
Sofía Castillo | CDMX
La información de salarios no aparece porque nadie la pidió. Esto también es importante por seguridad: no todos los departamentos deben ver todos los datos.
Ahora, si el director de nómina quiere ver nombre, puesto y salario:
SELECT nombre, puesto, salario
FROM empleados;
Resultado:
nombre | puesto | salario
----------------|------------|--------
Ana Torres | Cajera | $8,500
Carlos Reyes | Gerente | $18,500
Diana López | Cajera | $8,500
Roberto Méndez | Supervisor | $12,500
Sofía Castillo | Gerente | $19,000
Con exactamente el mismo patrón SELECT-FROM, cambiando solo las columnas, obtienes una vista completamente diferente de los datos.
El punto y coma al final: ¿por qué importa?
Habrás notado que cada consulta termina con un punto y coma (;). Ese símbolo le dice a la base de datos: "aquí termina mi instrucción". Es como el punto al final de una oración en español. En muchos sistemas como MySQL o PostgreSQL, si olvidas el punto y coma, la consulta no se ejecuta o espera más instrucciones sin hacer nada.
Desde ahora, haz un hábito: siempre termina tus consultas con ;.
Errores comunes al escribir tu primera consulta
Todo mundo comete estos errores al principio. Aquí los más frecuentes para que los evites:
Error 1: Escribir el nombre de la tabla mal
-- Incorrecto
SELECT nombre FROM Empleados;
-- Correcto
SELECT nombre FROM empleados;
En la mayoría de las bases de datos, los nombres de tablas distinguen entre mayúsculas y minúsculas. Si la tabla se llama empleados en minúsculas, escribir Empleados dará un error.
Error 2: Olvidar la coma entre columnas
-- Incorrecto
SELECT nombre puesto salario
FROM empleados;
-- Correcto
SELECT nombre, puesto, salario
FROM empleados;
Las columnas siempre van separadas por comas. Sin la coma, SQL no entiende dónde termina un nombre y dónde empieza el siguiente.
Error 3: Poner una coma después de la última columna
-- Incorrecto
SELECT nombre, puesto, salario,
FROM empleados;
-- Correcto
SELECT nombre, puesto, salario
FROM empleados;
La coma después de salario confunde a SQL porque espera otra columna y en cambio encuentra la palabra FROM.
Error 4: Escribir SELECT sin FROM
SELECT necesita saber de qué tabla tomar los datos. Sin FROM, la consulta está incompleta. La única excepción es cuando usas SELECT para calcular algo simple como SELECT 5 + 3;, pero eso lo veremos más adelante.
¿Por qué no siempre usar SELECT *?
Usar SELECT * parece conveniente, pero tiene desventajas reales en el trabajo. Primero, traes columnas que no necesitas, lo que hace más lenta la consulta cuando la tabla tiene millones de registros. Segundo, si alguien agrega una columna nueva a la tabla, tu resultado cambia sin que te avisen. Tercero, en equipos de trabajo, una consulta con nombres de columnas explícitos es mucho más fácil de entender para otros desarrolladores.
En resumen: usa SELECT * para explorar datos rápidamente. En código de producción, siempre especifica las columnas.
Practica ahora mismo
Puedes probar todo esto hoy sin instalar nada. Entra a db-fiddle.com o sqliteonline.com, crea una tabla de prueba y ejecuta tus primeras consultas en el navegador. No necesitas cuenta ni software especial.
Usa esta tabla de práctica basada en productos de Bimbo:
CREATE TABLE productos_bimbo (
id_producto INT,
nombre TEXT,
categoria TEXT,
precio_unitario DECIMAL
);
INSERT INTO productos_bimbo VALUES
(1, 'Gansito', 'Pastelito', 18),
(2, 'Pan Blanco', 'Pan de caja', 45),
(3, 'Marinela', 'Galleta', 22),
(4, 'Nito', 'Pastelito', 15);
Luego escribe:
SELECT nombre, precio_unitario
FROM productos_bimbo;
Y observa el resultado. Después prueba cambiar las columnas o usar SELECT *. Experimentar es la forma más rápida de aprender SQL.
El patrón que usarás toda tu carrera
SELECT y FROM son la base de todo en SQL: dominar estas dos palabras es el primer paso real hacia el análisis de datos profesional.
Cada consulta avanzada que aprenderás en las siguientes lecciones, desde filtros hasta agrupaciones, se construye encima de este mismo patrón. Lo que aprendiste hoy no es el primer escalón de la escalera: es el suelo sobre el que está parada toda la escalera.