SQL básico
SQL (Structured Query Language) es el lenguaje para hablar con las bases de datos relacionales.
DDL (CREATE TABLE) define la estructura; DML (INSERT, SELECT, UPDATE, DELETE) trabaja con los datos.
SELECT … FROM … WHERE … ORDER BY … LIMIT para preguntar.
COUNT y GROUP BY para resumir; JOIN … ON para juntar tablas por sus claves.
UPDATE y DELETE, siempre con WHERE.
- SQL (Structured Query Language) es el lenguaje para hablar con las bases de datos relacionales. Se lee casi como una frase en inglés: "selecciona el título de los carteles donde la técnica sea serigrafía". Con unas pocas instrucciones puedes crear tablas, llenarlas y, sobre todo, preguntarles cosas.
- Se divide en dos partes:
- Definición de datos (DDL): crear y cambiar la estructura: CREATE TABLE, ALTER TABLE, DROP TABLE. Manipulación de datos (DML): trabajar con los registros: INSERT, SELECT, UPDATE, DELETE.
- Para practicar necesitas un SGBD. Dos opciones sin instalar servidores:
- DB Browser for SQLite: programa gratuito para Windows, macOS y Linux. Nueva base de datos → pestaña Ejecutar SQL. SQLite Online: en el navegador, sin instalar nada.
Introducción
SQL (Structured Query Language) es el lenguaje para hablar con las bases de datos relacionales. Se lee casi como una frase en inglés: "selecciona el título de los carteles donde la técnica sea serigrafía". Con unas pocas instrucciones puedes crear tablas, llenarlas y, sobre todo, preguntarles cosas.
Se divide en dos partes:
Definición de datos (DDL): crear y cambiar la estructura: CREATE TABLE, ALTER TABLE, DROP TABLE. Manipulación de datos (DML): trabajar con los registros: INSERT, SELECT, UPDATE, DELETE.
Prepara tu laboratorio
Para practicar necesitas un SGBD. Dos opciones sin instalar servidores:
DB Browser for SQLite: programa gratuito para Windows, macOS y Linux. Nueva base de datos → pestaña Ejecutar SQL. SQLite Online: en el navegador, sin instalar nada.
Copia este script, pégalo y ejecútalo entero: crea el archivo de carteles de la lección Diseño conceptual: entidad-relación con datos inventados.
CREATE TABLE: la estructura
CREATE TABLE carteles ( id INTEGER PRIMARY KEY, titulo TEXT NOT NULL, anio INTEGER NOT NULL, tecnica TEXT, autor_id INTEGER NOT NULL REFERENCES autores(id) );
Cada campo tiene un tipo: INTEGER (entero), REAL (decimal), TEXT, fechas (en SQLite se guardan como texto AAAA-MM-DD). PRIMARY KEY: la clave primaria. NOT NULL: obligatorio. REFERENCES autores(id): clave foránea hacia la tabla autores.
INSERT: añadir registros
INSERT INTO autores (id, nombre, promocion, web) VALUES (5, 'Marta Gil', 2026, 'martagil.es');
Los textos van entre comillas simples; los números, sin comillas. Un dato desconocido se deja como NULL.
SELECT: preguntar
SELECT titulo, anio FROM carteles; -- dos columnas de todos los carteles SELECT * FROM carteles; -- todas las columnas
WHERE: filtrar
SELECT titulo FROM carteles WHERE tecnica = 'Serigrafía'; SELECT titulo FROM carteles WHERE anio >= 2025 AND tecnica = 'Digital'; SELECT titulo FROM carteles WHERE titulo LIKE '%Festival%'; -- contiene «Festival» SELECT nombre FROM autores WHERE web IS NULL; -- sin web
Operadores: =, <> (distinto), <, >, <=, >=, AND, OR, NOT, LIKE (con % como comodín), IN ('Digital', 'Risografía'), IS NULL.
JOIN: juntar tablas
Los datos están repartidos en tablas (lección Diseño conceptual: entidad-relación). JOIN los vuelve a unir usando las claves:
SELECT carteles.titulo, autores.nombre FROM carteles JOIN autores ON carteles.autor_id = autores.id WHERE carteles.tecnica = 'Serigrafía';
titulonombre Festival SurAna Ruiz Jazz en la AlamedaCarmen Vega Feria del LibroAna Ruiz
La condición ON dice qué columna de una tabla coincide con cuál de la otra: la clave foránea con la clave primaria. Con alias se escribe más corto:
UPDATE y DELETE: cambiar y borrar
UPDATE autores SET web = 'carmenvega.es' WHERE id = 3; DELETE FROM expone WHERE cartel_id = 7 AND exposicion_id = 2;
⚠️ Atención. Siempre con WHERE. UPDATE autores SET web = 'x' sin WHERE cambia todos los registros, y DELETE FROM carteles los borra todos. Antes de un UPDATE o un DELETE, haz un SELECT con el mismo WHERE para ver qué registros vas a tocar.
Practica
Con el archivo de carteles, escribe consultas para:
Los títulos de los carteles de 2024, ordenados alfabéticamente. Cuántos carteles hay de cada año. Los carteles digitales con el nombre de su autora o autor. Las exposiciones en las que está «Festival Sur». Añade un cartel tuyo e inclúyelo en la exposición «Diseño en la calle». Corrige la técnica de «Cine de Verano» a «Risografía a dos tintas».
Errores frecuentes
Comillas dobles para los textos: en SQL estándar son simples ('Digital'). Algunos gestores aceptan las dobles, pero otros las interpretan como nombres de columna. Olvidar la condición ON en un JOIN: salen todas las combinaciones posibles. UPDATE o DELETE sin WHERE. Comparar con NULL usando =: se escribe IS NULL. Mayúsculas y acentos: 'serigrafía' no es 'Serigrafía' en una comparación exacta.