1. ¿Qué es SQL?
SQL (Structured Query Language) es un lenguaje creado por IBM, standard de facto que usamos para operar con bases de datos relacionales. No es un lenguaje de programación en sentido estricto, pero sí nos permite decirle a la base de datos qué datos queremos ver, modificar o eliminar, y cómo queremos organizarlos.
En esta lección trabajaremos con Sakila, una base de datos de ejemplo que simula un videoclub ficticio con películas, actores, clientes y alquileres. Es perfecta para experimentar en un entorno realista sin riesgos.
2. Cómo se lee una sentencia SQL
Una consulta SQL se construye como una frase bien ordenada: primero decimos qué queremos (como SELECT
), luego de dónde y, si hace falta, bajo qué condiciones.
Por ejemplo:
SELECT title, rental_rate FROM film WHERE rental_rate < 1.00;
Se puede leer como: "Muestra el título y el precio de alquiler de las películas cuya tarifa sea menor a 1 dólar".
Las sentencias suelen terminar en punto y coma (;
), especialmente si estás ejecutando varias en bloque.
3. Errores comunes al empezar
Antes de empezar a escribir consultas, es importante conocer estos errores típicos para evitarlos:
- Usar comillas dobles (" ") para textos, cuando deben ir entre comillas simples (
'Texto'
). - Elegir nombres problemáticos, como
select
oorder
, para columnas o tablas. - Confundir el orden de ejecución: aunque escribas
SELECT ... WHERE ... ORDER BY
, internamente se ejecuta primero elFROM
, luego elWHERE
, etc.
Son detalles que vale la pena dominar temprano para evitar frustraciones.
4. SELECT
- Tu primera consulta
SELECT
es el comando más usado de SQL: con él pedimos a la base datos que nos muestre información.
Sintaxis básica
>SELECT columna1, columna2, columna3
FROM nombre_tabla;
Ejemplos prácticos
Consulta simple:
>SELECT first_name, last_name FROM customer;
Esto recupera los nombres y apellidos de todos los clientes.
Seleccionar todas las columnas:
>SELECT * FROM actor;
El asterisco (*
) es una abreviatura para seleccionar todas las columnas de la tabla.
Cálculos básicos:
>SELECT AVG(rental_rate) FROM film;
Aquí obtenemos el precio medio de alquiler entre todas las películas.
5. WHERE
- Filtrar resultados
Para limitar qué datos queremos ver, usamos la cláusula WHERE
. Esta se aplica a cada fila verificando valores específicos para determinar si deben incluirse en los resultados.
Sintaxis
>SELECT columna1, columna2
FROM tabla
WHERE condicion
AND/OR otra_condicion;
Operadores de comparación
Operador | Descripción | Ejemplo |
---|---|---|
= |
Igual a | precio = 100 |
!= o <> |
Distinto de | stock != 0 |
< |
Menor que | edad < 18 |
<= |
Menor o igual que | cantidad <= 10 |
> |
Mayor que | salario > 2000 |
>= |
Mayor o igual que | puntuacion >= 8.5 |
Ejemplos prácticos
Filtro simple:
>SELECT first_name, last_name
FROM customer
WHERE active = 1;
Muestra solo los clientes activos.
Filtro con texto:
>SELECT title, rental_rate
FROM film
WHERE rating = 'PG-13';
Muestra películas con clasificación PG-13.
Múltiples condiciones:
>SELECT title, rental_rate
FROM film
WHERE rental_rate > 2.00 AND rating = 'R';
Películas con tarifa mayor a $2 Y clasificación R.
6. Operadores especiales
BETWEEN
- Rangos de valores
>SELECT title, rental_rate
FROM film
WHERE rental_rate BETWEEN 2.00 AND 4.00;
Películas con tarifa entre 2 y 4 (inclusive).
IN
- Lista de valores
>SELECT title, rating
FROM film
WHERE rating IN ('G', 'PG', 'PG-13');
Películas con cualquiera de estas tres clasificaciones.
NOT
- Negación
>SELECT title, rating
FROM film
WHERE rating NOT IN ('NC-17', 'R');
Películas que NO tienen clasificación NC-17 o R.
7. ORDER BY
- Ordenar resultados
Para organizar los resultados usamos ORDER BY
:
Sintaxis
>SELECT columnas
FROM tabla
WHERE condiciones
ORDER BY columna ASC/DESC;
Ejemplos
Orden ascendente (por defecto):
>SELECT title, rental_rate
FROM film
ORDER BY rental_rate;
Películas ordenadas por precio de menor a mayor.
Orden descendente:
>SELECT title, rental_rate
FROM film
ORDER BY rental_rate DESC;
Películas ordenadas por precio de mayor a menor.
Múltiples criterios:
>SELECT title, rating, rental_rate
FROM film
ORDER BY rating, rental_rate DESC;
Primero por clasificación (A-Z), luego por precio (mayor a menor).
8.LIMIT
- Limitar resultados
Para obtener solo un número específico de resultados:
>SELECT title, rental_rate
FROM film
ORDER BY rental_rate DESC
LIMIT 5;
Muestra las 5 películas más caras de alquilar.
Resumen
En esta lección has aprendido:
- La sintaxis básica de SQL y cómo leer una consulta
- A usar
SELECT
para obtener datos de una tabla - A filtrar resultados con
WHERE
y diversos operadores - A ordenar y limitar resultados con
ORDER BY
yLIMIT