Teoría: SQL Práctico
estudiantes, cursos y matriculas para todos los ejemplos.
1. SELECT básico
Consulta datos de una tabla. Es la instrucción más usada en SQL.
-- Todos los campos SELECT * FROM estudiantes; -- Campos específicos SELECT nombre, edad FROM estudiantes; -- Con alias SELECT nombre AS Estudiante, edad AS Años FROM estudiantes; -- Eliminar duplicados SELECT DISTINCT ciudad FROM estudiantes;
2. WHERE — Filtrar filas
Filtra las filas según una o varias condiciones.
-- Condición simple SELECT * FROM estudiantes WHERE edad > 15; -- Múltiples condiciones SELECT * FROM estudiantes WHERE edad >= 15 AND ciudad = 'Medellín'; -- Rango de valores SELECT * FROM estudiantes WHERE edad BETWEEN 14 AND 17; -- Búsqueda por patrón SELECT * FROM estudiantes WHERE nombre LIKE 'An%'; -- empieza con An -- Lista de valores SELECT * FROM estudiantes WHERE ciudad IN ('Bogotá', 'Medellín');
3. ORDER BY y LIMIT
Ordena resultados y limita la cantidad de filas devueltas.
-- Orden ascendente (default) SELECT nombre, nota FROM estudiantes ORDER BY nota ASC; -- Orden descendente SELECT nombre, nota FROM estudiantes ORDER BY nota DESC; -- Top 5 mejores notas SELECT nombre, nota FROM estudiantes ORDER BY nota DESC LIMIT 5;
4. GROUP BY y Agregaciones
Agrupa filas y calcula resúmenes por grupo.
-- Contar estudiantes por ciudad SELECT ciudad, COUNT(*) AS total FROM estudiantes GROUP BY ciudad; -- Promedio de nota por curso SELECT id_curso, AVG(nota) AS promedio, MAX(nota) AS mayor, MIN(nota) AS menor FROM matriculas GROUP BY id_curso; -- Filtrar grupos con HAVING SELECT ciudad, COUNT(*) AS total FROM estudiantes GROUP BY ciudad HAVING COUNT(*) > 5;
5. JOIN — Unir Tablas
Combina datos de dos o más tablas relacionadas.
-- INNER JOIN: solo coincidencias SELECT e.nombre, c.nombre_curso, m.nota FROM matriculas m INNER JOIN estudiantes e ON m.id_est = e.id INNER JOIN cursos c ON m.id_curso = c.id; -- LEFT JOIN: todos los estudiantes -- aunque no tengan matrícula SELECT e.nombre, m.nota FROM estudiantes e LEFT JOIN matriculas m ON e.id = m.id_est; -- RIGHT JOIN: todos los cursos SELECT e.nombre, c.nombre_curso FROM matriculas m RIGHT JOIN cursos c ON m.id_curso = c.id;
6. INSERT, UPDATE y DELETE
Manipulación de datos: insertar, modificar y eliminar registros.
-- INSERT: agregar un registro INSERT INTO estudiantes (nombre, edad, ciudad) VALUES ('Valentina', 16, 'Bogotá'); -- UPDATE: modificar registros UPDATE estudiantes SET ciudad = 'Medellín', edad = 17 WHERE id = 3; -- DELETE: eliminar registros DELETE FROM estudiantes WHERE id = 3; -- ⚠️ Sin WHERE elimina TODO -- DELETE FROM estudiantes; ← peligroso
⚠️ Siempre usa WHERE con UPDATE y DELETE para no afectar toda la tabla.
Simulador SQL
Selecciona una consulta y observa el resultado en la tabla virtual.
Diccionario SQL
Videos en Español
Introducción a SQL — SELECT y WHERE
JOINs en SQL explicados paso a paso
INSERT, UPDATE y DELETE en MySQL
Curso completo de SQL
Cuestionario
10 preguntas aleatorias del banco de 50. Calificación de 0 a 100.
Tu calificación: