-- 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;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: