Tu Primera Consulta SQL
¡Felicitaciones! Si has llegado hasta aquí, significa que ya comprendes qué es una base de datos y cómo se organizan los datos en tablas. Ahora es momento de dar el paso más emocionante: aprender a preguntar a tu base de datos. Para eso existen las consultas SQL.
En esta lección descubrirás cómo escribir tu primera consulta, entenderás su estructura básica y realizarás ejemplos prácticos que podrás ejecutar inmediatamente en tu motor de base de datos favorito.
¿Qué es una consulta SQL?
Una consulta SQL es una instrucción que le damos a la base de datos para que realice una acción específica. Esta acción puede ser:
- Recuperar datos (la más común, usando SELECT)
- Insertar nuevos registros (usando INSERT)
- Actualizar información existente (usando UPDATE)
- Eliminar datos (usando DELETE)
La Estructura Básica de SELECT
La sentencia más fundamental en SQL es SELECT. Su propósito es seleccionar y mostrar datos de una o varias columnas. La sintaxis más básica es:
SELECT columna1, columna2 FROM nombre_tabla;
Vamos a desglosar cada parte de esta consulta:
- SELECT — Le indica a la base de datos que queremos recuperar datos.
- columna1, columna2 — Especifica cuáles columnas queremos ver. Podemos indicar una o muchas, separadas por comas.
- FROM — Indica de qué tabla vamos a obtener los datos.
- nombre_tabla — El nombre de la tabla donde están los datos.
- ; — El punto y coma marca el final de la consulta (en la mayoría de sistemas es opcional, pero es buena práctica incluirlo).
Ejemplos Prácticos Paso a Paso
Imaginemos que tenemos una tabla llamada empleados con la siguiente información:
| nombre | apellido | departamento | salario |
|---|---|---|---|
| María | García | Ventas | 45000 |
| Carlos | Rodríguez | Marketing | 52000 |
| Ana | Martínez | Ventas | 48000 |
| Luis | Hernández | TI | 61000 |
Ejemplo 1: Seleccionar todas las columnas
Si queremos ver absolutamente todos los datos de la tabla, podemos usar el asterisco *, que actúa como un comodín representando "todas las columnas":
SELECT * FROM empleados;
Este comando devolverá la tabla completa que vimos anteriormente.
Ejemplo 2: Seleccionar columnas específicas
Si solo nos interesan los nombres y apellidos de los empleados, escribimos:
SELECT nombre, apellido FROM empleados;
El resultado sería:
| nombre | apellido |
|---|---|
| María | García |
| Carlos | Rodríguez |
| Ana | Martínez |
| Luis | Hernández |
Ejemplo 3: Seleccionar una sola columna
Para ver únicamente los departamentos disponibles:
SELECT departamento FROM empleados;
SELECT *. Esto hace tu código más mantenible y rápido, ya que la base de datos no necesita "descubrir" qué columnas existen cada vez.El Poder de DISTINCT
¿Notaste que en el ejemplo anterior, "Ventas" aparecía dos veces? A veces necesitamos ver valores únicos, sin duplicados. Para eso existe DISTINCT:
SELECT DISTINCT departamento FROM empleados;
Resultado:
| departamento |
|---|
| Ventas |
| Marketing |
| TI |
"DISTINCT es como pedirle a tu base de datos que te muestre el menú sin repeticiones: si hay tres tipos de pasta, te muestra solo uno de cada tipo."
Expresiones y Cálculos en SELECT
SQL no solo sirve para recuperar datos tal como están; también podemos realizar cálculos y transformaciones directamente en la consulta. Por ejemplo:
SELECT nombre, salario, salario * 1.10 FROM empleados;
Esto mostraría una columna extra con el salario aumentado un 10%:
| nombre | salario | salario * 1.10 |
|---|---|---|
| María | 45000 | 49500 |
| Carlos | 52000 | 57200 |
| Ana | 48000 | 52800 |
| Luis | 61000 | 67100 |
Aliases: Nombres Alternativos para Columnas
Cuando creamos columnas calculadas o queremos dar un nombre más claro a nuestros resultados, podemos usar aliases con la palabra clave AS:
SELECT nombre, salario AS salario_original, salario * 1.10 AS nuevo_salario FROM empleados;
El resultado ahora tendrá encabezados más legibles:
| nombre | salario_original | nuevo_salario |
|---|---|---|
| María | 45000 | 49500 |
| Carlos | 52000 | 57200 |
| Ana | 48000 | 52800 |
| Luis | 61000 | 67100 |
Funciones de Agregado Básicas
SQL incluye funciones incorporadas para realizar cálculos comunes. Aquí las más importantes:
| Función | Descripción | Ejemplo |
|---|---|---|
| COUNT() | Cuenta registros | COUNT(*) |
| SUM() | Suma valores | SUM(salario) |
| AVG() | Calcula promedio | AVG(salario) |
| MAX() | Valor máximo | MAX(salario) |
| MIN() | Valor mínimo | MIN(salario) |
Veamos un ejemplo práctico:
SELECT COUNT(*) AS total_empleados, AVG(salario) AS promedio_salarial FROM empleados;
El Orden de las Palabras Importa
En SQL, las palabras clave tienen un orden específico que debes respetar. Se conoce como orden de ejecución:
- SELECT — Qué columnas queremos (se ejecuta segundo, pero se escribe primero)
- FROM — De dónde vienen los datos
- WHERE — Filtrar registros (lo aprenderás en la siguiente lección)
- GROUP BY — Agrupar resultados
- HAVING — Filtrar grupos
- ORDER BY — Ordenar el resultado
Aunque escribimos SELECT primero, internamente la base de datos primero identifica de qué tabla va a extraer datos (FROM), luego aplica filtros (WHERE), procesa agrupamientos (GROUP BY), filtra grupos (HAVING), selecciona las columnas solicitadas (SELECT), las ordena (ORDER BY) y finalmente las presenta. Es como leer un libro al revés: la historia se cuenta en un orden diferente al que está escrita en la página.
Errores Comunes y Cómo Evitarlos
Aunque muchos sistemas lo perdonan, es buena práctica incluirlo siempre. Sin él, si envías dos consultas seguidas, el sistema no sabrá dónde termina una y comienza otra.
Error #2: Nombres de columnas o tablas mal escritos
SQL es case-sensitive en la mayoría de sistemas para nombres de objetos. "Nombre" y "nombre" podrían ser cosas diferentes dependiendo de tu motor de base de datos.
Error #3: Olvidar las comas entre columnas
Si seleccionas varias columnas, sepáralas con comas: SELECT nombre, apellido, departamento
Práctica Recomendada
- Instala una base de datos de prueba (MySQL, PostgreSQL, SQLite o SQL Server Express)
- Importa una base de datos de ejemplo como "Sakila" o "Northwind"
- Practica escribir consultas SELECT todos los días durante una semana
- Intenta responder preguntas simples sobre los datos usando solo SELECT
Resumen de lo Aprendido
En esta lección cubrimos los fundamentos de tu primera consulta SQL:
- Aprendiste que una consulta SQL es un comando para interactuar con la base de datos
- Dominamos la estructura básica de SELECT columna FROM tabla
- Descubriste cómo usar SELECT * para todas las columnas
- Aprendiste a usar DISTINCT para eliminar duplicados
- Exploraste los aliases con AS para nombres más claros
- Conociste las funciones de agregado básicas
Si quieres ver únicamente los nombres únicos de los departamentos en una tabla llamada "tienda", ¿cuál consulta usarías?
- A) SELECT departamento FROM tienda;
- B) SELECT UNIQUE departamento FROM tienda;
- C) SELECT DISTINCT departamento FROM tienda;
- D) SELECT ONLY departamento FROM tienda;
¿Qué símbolo se usa para seleccionar TODAS las columnas de una tabla?
- A) %
- B) #
- C) *
- D) ALL
¿Para qué sirve la palabra clave AS en una consulta SELECT?
- A) Para ordenar los resultados
- B) Para filtrar datos
- C) Para asignar un nombre alternativo (alias) a una columna o tabla
- D) Para unir tablas
"La diferencia entre un principiante y un experto en SQL no es memorizar más comandos, sino saber combinar los que ya conoces de formas creativas para resolver problemas complejos."