-- CREATE DATABASE IF NOT EXISTS plataforma_cursos;
-- USE plataforma_cursos;
DROP TABLE IF EXISTS Inscripciones;
DROP TABLE IF EXISTS Cursos;
DROP TABLE IF EXISTS Instructores;
DROP TABLE IF EXISTS Estudiantes;
DROP TABLE IF EXISTS Categorias;
CREATE TABLE Categorias (
id_categoria INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL
);
CREATE TABLE Instructores (
id_instructor INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
especialidad VARCHAR(100) NOT NULL,
calificacion_promedio DECIMAL(3,2),
columna_innecesaria VARCHAR(50)
);
CREATE TABLE Estudiantes (
id_estudiante INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
correo VARCHAR(100) NOT NULL UNIQUE
);
CREATE TABLE Cursos (
id_curso INT AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(100) NOT NULL,
duracion_horas INT NOT NULL,
precio DECIMAL(10,2) NOT NULL,
id_categoria INT NOT NULL,
id_instructor INT NOT NULL,
FOREIGN KEY (id_categoria) REFERENCES Categorias(id_categoria),
FOREIGN KEY (id_instructor) REFERENCES Instructores(id_instructor)
);
CREATE TABLE Inscripciones (
id_inscripcion INT AUTO_INCREMENT PRIMARY KEY,
id_estudiante INT NOT NULL,
id_curso INT NOT NULL,
fecha_inscripcion DATE NOT NULL,
porcentaje_avance DECIMAL(5,2) DEFAULT 0.00,
FOREIGN KEY (id_estudiante) REFERENCES Estudiantes(id_estudiante),
FOREIGN KEY (id_curso) REFERENCES Cursos(id_curso)
);
-- Inserciones
INSERT INTO Categorias (nombre) VALUES ('Programación'), ('Diseño'), ('Negocios'), ('Marketing');
INSERT INTO Instructores (nombre, especialidad, calificacion_promedio) VALUES ('Alan Turing', 'Backend', 4.9), ('Ada Lovelace', 'Algoritmos', 5.0), ('Steve Jobs', 'Diseño UI', 4.8), ('Philip Kotler', 'Ventas', 4.5);
INSERT INTO Estudiantes (nombre, correo) VALUES ('Mario', 'mario@a.com'), ('Luigi', 'luigi@a.com'), ('Peach', 'peach@a.com'), ('Toad', 'toad@a.com');
INSERT INTO Cursos (titulo, duracion_horas, precio, id_categoria, id_instructor) VALUES ('SQL Base', 20, 50.00, 1, 1), ('Figma Pro', 15, 40.00, 2, 3), ('Python', 30, 60.00, 1, 2), ('SEO', 10, 30.00, 4, 4);
INSERT INTO Inscripciones (id_estudiante, id_curso, fecha_inscripcion, porcentaje_avance) VALUES (1, 1, '2026-08-01', 50.0), (2, 2, '2026-08-02', 100.0), (3, 3, '2026-08-03', 10.0), (4, 4, '2026-08-04', 0.0);
-- Modificaciones
ALTER TABLE Estudiantes ADD COLUMN fecha_nacimiento DATE;
ALTER TABLE Cursos MODIFY COLUMN precio DECIMAL(10,2) NOT NULL;
ALTER TABLE Inscripciones ADD CONSTRAINT chk_avance CHECK (porcentaje_avance BETWEEN 0 AND 100);
ALTER TABLE Instructores DROP COLUMN columna_innecesaria;
-- Impacto DROP TABLE Categorias: Se debe borrar/desconectar la FK id_categoria en Cursos.
ALTER TABLE Cursos DROP FOREIGN KEY cursos_ibfk_1;
ALTER TABLE Cursos DROP COLUMN id_categoria;
DROP TABLE IF EXISTS Categorias;
To embed this project on your website, copy the following code and paste it into your website's HTML: