CREATE TABLE profesores (
id_profesor INT(11) PRIMARY KEY,
nombre VARCHAR(100),
especialidad VARCHAR(100),
correo VARCHAR(100)
);
CREATE TABLE estudiantes (
id_estudiante INT(11) PRIMARY KEY,
nombre VARCHAR(100),
correo VARCHAR(100),
fecha_registro DATE
);
CREATE TABLE cursos (
id_curso INT(11) PRIMARY KEY,
nombre VARCHAR(100),
descripcion VARCHAR(100),
duracion INT(11),
id_profesor INT(11),
FOREIGN KEY (id_profesor) REFERENCES profesores(id_profesor)
);
CREATE TABLE actividades (
id_actividad INT(11) PRIMARY KEY,
id_curso INT(11),
nombre VARCHAR(100),
tipo VARCHAR(100),
fecha_entrega DATE,
FOREIGN KEY (id_curso) REFERENCES cursos(id_curso)
);
CREATE TABLE inscripciones (
id_inscripcion INT(11) PRIMARY KEY,
id_estudiante INT(11),
id_curso INT(11),
fecha DATE,
FOREIGN KEY (id_estudiante) REFERENCES estudiantes(id_estudiante),
FOREIGN KEY (id_curso) REFERENCES cursos(id_curso)
);
CREATE TABLE calificaciones (
id_calificacion INT(11) PRIMARY KEY,
id_estudiante INT(11),
id_curso INT(11),
nota INT(11),
fecha DATE,
FOREIGN KEY (id_estudiante) REFERENCES estudiantes(id_estudiante),
FOREIGN KEY (id_curso) REFERENCES cursos(id_curso)
);
INSERT INTO profesores (id_profesor, nombre, especialidad, correo) VALUES
(1, 'luis alberto', 'Matemáticas', 'luis123@gmail.com'),
(2, 'maria elisa', 'Historia', 'maria234@gmail.com'),
(3, 'carlos galan', 'Ciencias', 'carlos345@gmail.com'),
(4, 'elena gomez', 'Literatura', 'elena456@gmail.com'),
(5, 'clara lucia', 'Tecnología', 'clara567@gmail.com');
INSERT INTO cursos (id_curso, nombre, descripcion, duracion, id_profesor) VALUES
(1, 'Álgebra Lineal', 'Curso básico de ecuaciones y matrices', 40, 1),
(2, 'Historia Universal', 'Desde la prehistoria hasta el siglo XX', 35, 2),
(3, 'Biología General', 'Estudio de los seres vivos y ecosistemas', 45, 3),
(4, 'Literatura Hispana', 'Análisis de obras literarias clave', 30, 4),
(5, 'Introducción a SQL', 'Fundamentos de bases de datos', 50, 5);
INSERT INTO estudiantes (id_estudiante, nombre, correo, fecha_registro) VALUES
(1, 'carlos andres', 'carlos123@gmail.com', '2026-05-01'),
(2, 'pablo camilo', 'pablo234@gmail.com', '2026-05-03'),
(3, 'nicolas david', 'nico345@gmail.com', '2026-05-05'),
(4, 'julian perez', 'juli456@gmail.com', '2026-05-08'),
(5, 'alex olmos', 'alex567@gmail.com', '2026-05-11');
INSERT INTO inscripciones (id_inscripcion, id_estudiante, id_curso, fecha) VALUES
(1, 1, 1, '2026-05-02'),
(2, 2, 2, '2026-05-05'),
(3, 3, 3, '2026-05-08'),
(4, 4, 4, '2026-05-11'),
(5, 5, 5, '2026-05-13');
INSERT INTO actividades (id_actividad, id_curso, nombre, tipo, fecha_entrega) VALUES
(1, 1, 'Taller de Matrices', 'Tarea', '2026-05-03'),
(2, 2, 'Ensayo Revolución Francesa', 'Ensayo', '2026-05-05'),
(3, 3, 'Reporte de Laboratorio', 'Práctica', '2026-05-07'),
(4, 4, 'Análisis del Quijote', 'Lectura', '2026-05-10'),
(5, 5, 'Diseño de Modelo ER', 'Proyecto', '2026-05-13');
INSERT INTO calificaciones (id_calificacion, id_estudiante, id_curso, nota, fecha) VALUES
(1, 1, 1, 1.0, '2026-05-10'),
(2, 2, 2, 2.0, '2026-05-12'),
(3, 3, 3, 3.0, '2026-05-15'),
(4, 4, 4, 4.0, '2026-05-17'),
(5, 5, 5, 5.0, '2026-05-19');
SELECT * FROM estudiantes;
SELECT * FROM cursos;
SELECT nombre, correo
FROM profesores;
SELECT *
FROM cursos
WHERE duracion > 11;
SELECT *
FROM estudiantes
WHERE fecha_registro > '2026-05-01';
SELECT *
FROM actividades
ORDER BY fecha_entrega ASC;
SELECT *
FROM calificaciones
WHERE nota > 1.0;
SELECT estudiantes.nombre, cursos.nombre
FROM inscripciones
INNER JOIN estudiantes
ON inscripciones.id_estudiante = estudiantes.id_estudiante
INNER JOIN cursos
ON inscripciones.id_curso = cursos.id_curso;
SELECT profesores.nombre, cursos.nombre
FROM profesores
INNER JOIN cursos
ON profesores.id_profesor = cursos.id_profesor;
SELECT cursos.nombre, actividades.nombre
FROM cursos
INNER JOIN actividades
ON cursos.id_curso = actividades.id_curso;
SELECT estudiantes.nombre, calificaciones.nota
FROM estudiantes
INNER JOIN calificaciones
ON estudiantes.id_estudiante = calificaciones.id_estudiante;
SELECT COUNT(*) AS total_estudiantes
FROM estudiantes;
SELECT AVG(nota) AS promedio_notas
FROM calificaciones;
SELECT *
FROM cursos
ORDER BY duracion DESC
LIMIT 1;
SELECT profesores.nombre, COUNT(cursos.id_curso) AS total_cursos
FROM profesores
INNER JOIN cursos
ON profesores.id_profesor = cursos.id_profesor
GROUP BY profesores.nombre;
SELECT estudiantes.nombre, COUNT(inscripciones.id_curso) AS cursos_inscritos
FROM estudiantes
INNER JOIN inscripciones
ON estudiantes.id_estudiante = inscripciones.id_estudiante
GROUP BY estudiantes.nombre;
SELECT cursos.nombre, AVG(calificaciones.nota) AS promedio
FROM cursos
INNER JOIN calificaciones
ON cursos.id_curso = calificaciones.id_curso
GROUP BY cursos.nombre;
SELECT estudiantes.nombre, calificaciones.nota
FROM estudiantes
INNER JOIN calificaciones
ON estudiantes.id_estudiante = calificaciones.id_estudiante
WHERE calificaciones.nota < 3.0;
SELECT cursos.nombre
FROM cursos
LEFT JOIN actividades
ON cursos.id_curso = actividades.id_curso
WHERE actividades.id_actividad IS NULL;
SELECT estudiantes.nombre, calificaciones.nota
FROM estudiantes
INNER JOIN calificaciones
ON estudiantes.id_estudiante = calificaciones.id_estudiante
ORDER BY calificaciones.nota DESC
LIMIT 1;
To embed this project on your website, copy the following code and paste it into your website's HTML: