diff --git a/MySQL/datos.sql b/MySQL/datos.sql new file mode 100644 index 0000000..8b58b3f --- /dev/null +++ b/MySQL/datos.sql @@ -0,0 +1,49 @@ + + +-- Añadir usuarios +CALL añadir_usuario(111, 'Leonardo Espejo', 'leonardo@leonardo.com', 'contra'); +CALL añadir_usuario(222, 'Brandon Meneses', 'brandon@brandon.com', 'contra'); +CALL añadir_usuario(333, 'Giovanni Dantas', 'dantas@dantas.com', 'contra'); + +-- Añadir cursos +CALL añadir_curso('Desarrollo Web con HTML, CSS y JS', 'Aprende a crear sitios web interactivos desde cero con tecnologías web.', 49.99, './img/courses/web.jpg'); +CALL añadir_curso('Programación en Python', 'Domina uno de los lenguajes más populares y versátiles.', 59.99, './img/courses/python.jpg'); +CALL añadir_curso('Desarrollo de Aplicaciones Móviles', 'Crea aplicaciones móviles multiplataforma con React Native.', 79.99, './img/courses/movilReact.jpg'); +CALL añadir_curso('Bases de Datos SQL y MySQL', 'Aprende a diseñar y administrar bases de datos relacionales.', 69.99, './img/courses/sql.jpg'); +CALL añadir_curso('Desarrollo de Aplicaciones con Node.js', 'Construye aplicaciones del lado del servidor con Node.js.', 59.99, './img/courses/node.jpg'); +CALL añadir_curso('Desarrollo de Aplicaciones con Java', 'Aprende Java y desarrolla aplicaciones empresariales robustas.', 79.99, './img/courses/java.jpg'); + +-- Añadir links de video +CALL añadir_link_video(1, 'Introducción a HTML', 'https://www.example.com/html_intro_video'); +CALL añadir_link_video(1, 'CSS Avanzado', 'https://www.example.com/css_advanced_video'); +CALL añadir_link_video(2, 'Python Orientado a Objetos', 'https://www.example.com/python_oop_video'); +CALL añadir_link_video(2, 'Python Funcional', 'https://www.example.com/python_functional_video'); +CALL añadir_link_video(3, 'React Native Fundamentals', 'https://www.example.com/react_native_video'); +CALL añadir_link_video(3, 'React Native Avanzado', 'https://www.example.com/react_native_advanced_video'); +CALL añadir_link_video(4, 'SQL Básico', 'https://www.example.com/sql_basic_video'); +CALL añadir_link_video(4, 'SQL Avanzado', 'https://www.example.com/sql_advanced_video'); +CALL añadir_link_video(5, 'Node.js Express', 'https://www.example.com/node_express_video'); +CALL añadir_link_video(5, 'Node.js MongoDB', 'https://www.example.com/node_mongodb_video'); +CALL añadir_link_video(6, 'Java Enterprise', 'https://www.example.com/java_enterprise_video'); +CALL añadir_link_video(6, 'Java Spring', 'https://www.example.com/java_spring_video'); + +-- Añadir links de archivo +CALL añadir_link_archivo(1, 'Ejemplos HTML', 'https://www.example.com/html_examples.pdf'); +CALL añadir_link_archivo(1, 'CSS Cheat Sheet', 'https://www.example.com/css_cheat_sheet.pdf'); +CALL añadir_link_archivo(2, 'Python Cheat Sheet', 'https://www.example.com/python_cheat_sheet.pdf'); +CALL añadir_link_archivo(2, 'Python Practice Problems', 'https://www.example.com/python_practice_problems.pdf'); +CALL añadir_link_archivo(3, 'React Native Starter Code', 'https://www.example.com/react_native_code.zip'); +CALL añadir_link_archivo(3, 'React Native Practice Problems', 'https://www.example.com/react_native_practice_problems.pdf'); +CALL añadir_link_archivo(4, 'SQL Practice Queries', 'https://www.example.com/sql_practice_queries.pdf'); +CALL añadir_link_archivo(4, 'SQL Practice Problems', 'https://www.example.com/sql_practice_problems.pdf'); +CALL añadir_link_archivo(5, 'Node.js Practice Problems', 'https://www.example.com/node_practice_problems.pdf'); +CALL añadir_link_archivo(5, 'Node.js Practice Code', 'https://www.example.com/node_practice_code.zip'); +CALL añadir_link_archivo(6, 'Java Enterprise Framework', 'https://www.example.com/java_enterprise_framework.zip'); +CALL añadir_link_archivo(6, 'Java Spring Practice Problems', 'https://www.example.com/java_spring_practice_problems.pdf'); + +-- Añadir compras +CALL añadir_compra(111, 1); +CALL añadir_compra(111, 4); +CALL añadir_compra(222, 3); +CALL añadir_compra(222, 6); +CALL añadir_compra(333, 2); diff --git a/MySQL/storedProcedures.sql b/MySQL/storedProcedures.sql new file mode 100644 index 0000000..d5f0151 --- /dev/null +++ b/MySQL/storedProcedures.sql @@ -0,0 +1,81 @@ + + + +-- stored procedure, que añade un usuario a la base de datos +DELIMITER $$ +CREATE PROCEDURE añadir_usuario( + IN dni INT, + IN nombre VARCHAR(255), + IN correo VARCHAR(255), + IN contraseña VARCHAR(255) +) +BEGIN + INSERT INTO Usuarios (DNI, Nombre, Correo, Contraseña) VALUES (dni, nombre, correo, contraseña); +END$$ +DELIMITER ; + +-- stored procedure, que añade un curso a la base de datos +DELIMITER $$ +CREATE PROCEDURE añadir_curso( + IN nombre_curso VARCHAR(255), + IN descripcion TEXT, + IN precio DECIMAL(10, 2), + IN url_imagen VARCHAR(255) +) +BEGIN + INSERT INTO Cursos (Nobre_curso, Descripción, Precio, URL_imagen) VALUES (nombre_curso, descripcion, precio, url_imagen); +END$$ +DELIMITER ; + +-- stored procedure, que añade un link de video al curso correspondiente +DELIMITER $$ +CREATE PROCEDURE añadir_link_video( + IN id_curso INT, + IN nombre_video VARCHAR(255), + IN url_video VARCHAR(255) +) +BEGIN + INSERT INTO Links_videos (ID_curso, Nombre_video, URL_video) VALUES (id_curso, nombre_video, url_video); +END$$ +DELIMITER ; + +-- stored procedure, que añade un link de archivo al curso correspondiente +DELIMITER $$ +CREATE PROCEDURE añadir_link_archivo( + IN id_curso INT, + IN nombre_archivo VARCHAR(255), + IN url_archivo VARCHAR(255) +) +BEGIN + INSERT INTO Links_archivos (ID_curso, Nombre_archivo, URL_archivo) VALUES (id_curso, nombre_archivo, url_archivo); +END$$ +DELIMITER ; + +-- stored procedure, que añade una compra a la base de datos +DELIMITER $$ +CREATE PROCEDURE añadir_compra( + IN id_usuario INT, + IN id_curso INT +) +BEGIN + INSERT INTO Compras (ID_usuario, ID_curso) VALUES (id_usuario, id_curso); +END$$ +DELIMITER ; + +-- funcion que retorna un true si correo y contraseña coinciden sino false +DELIMITER $$ +CREATE FUNCTION login( + IN correo VARCHAR(255), + IN contraseña VARCHAR(255) +) +RETURNS BOOLEAN +BEGIN + DECLARE existe INT; + SELECT COUNT(*) INTO existe FROM Usuarios WHERE Correo = correo AND Contraseña = contraseña; + IF existe > 0 THEN + RETURN TRUE; + ELSE + RETURN FALSE; + END IF; +END$$ +DELIMITER ; diff --git a/MySQL/tablas.sql b/MySQL/tablas.sql index c15c7aa..641fad2 100644 --- a/MySQL/tablas.sql +++ b/MySQL/tablas.sql @@ -7,7 +7,7 @@ USE proyecto_web; -- MySQL CREATE TABLE Usuarios ( - ID INT AUTO_INCREMENT PRIMARY KEY, + DNI INT PRIMARY KEY UNIQUE NOT NULL, Nombre VARCHAR(255) NOT NULL, Correo VARCHAR(255) NOT NULL, Contraseña VARCHAR(255) NOT NULL @@ -26,7 +26,7 @@ CREATE TABLE Compras ( ID_usuario INT, ID_curso INT, Fecha_compra TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (ID_usuario) REFERENCES Usuarios(ID), + FOREIGN KEY (ID_usuario) REFERENCES Usuarios(DNI), FOREIGN KEY (ID_curso) REFERENCES Cursos(ID) );