Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.59 KB | None | 0 0
  1. -------- creacion de db-------------------
  2.  
  3. create table Alumno (
  4. idAlumno int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  5. NomA varchar(35) NOT NULL,
  6. ApA varchar(35) NOT NULL,
  7. AmA varchar(35) NOT NULL,
  8. ConA varchar(35) NOT NULL,
  9. Matricula varchar(60) NOT NULL UNIQUE
  10. );
  11.  
  12.  
  13. create table Docente (
  14. idDocente int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  15. NomD varchar(35) NOT NULL,
  16. ApD varchar(35) NOT NULL,
  17. AmD varchar(35) NOT NULL,
  18. Alias varchar(35) NOT NULL,
  19. ConD varchar(60)
  20. );
  21.  
  22. create table Materia (
  23. idMateria int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  24. NomM varchar(50) NOT NULL,
  25. Creditos int
  26. );
  27.  
  28. create table Grupo (
  29. idAlumno int,
  30. idGrupo int
  31. );
  32.  
  33. create table Avance (
  34. Fecha varchar(35) NOT NULL,
  35. idAlumno int NOT NULL,
  36. idReto int NOT NULL
  37. );
  38.  
  39. create table DatosGrupo(
  40. idGrupo int NOT NULL,
  41. idMateria int NOT NULL,
  42. idDocente int NOT NULL,
  43. Grado int,
  44. Grupo char(1),
  45. Turno varchar(10)
  46. );
  47.  
  48.  
  49. create table Reto (
  50. idReto int NOT NULL AUTO_INCREMENT PRIMARY KEY,
  51. NomR varchar(50) NOT NULL,
  52. Nivel varchar(10) NOT NULL,
  53. IdSticker int NOT NULL,
  54. Puntaje int NOT NULL,
  55. Duracion float,
  56. TipoReto varchar(10) NOT NULL
  57. );
  58.  
  59.  
  60. ---------- creacion de procedimientos -------------
  61.  
  62.  
  63. DELIMITER //
  64. CREATE PROCEDURE proc_insert_avance (IN Fecha varchar(35), IN idAlumno int,IN idReto int, IN time varchar(10))
  65. BEGIN
  66. INSERT INTO Avance (Fecha,idAlumno,idReto, tiempo) values (Fecha,idAlumno,idReto, time);
  67. END
  68.  
  69. // DELIMITER ;
  70.  
  71.  
  72. DELIMITER //
  73. CREATE PROCEDURE proc_get_avance (IN alumno int, IN reto int)
  74. BEGIN
  75. SELECT * FROM Avance WHERE idAlumno=alumno AND idReto=reto;
  76. END
  77.  
  78. // DELIMITER ;
  79.  
  80.  
  81. DELIMITER //
  82. CREATE PROCEDURE proc_insert_reto (IN idReto int, IN NomR varchar(50),IN Nivel varchar(10), IN IdSticker int, IN Puntaje int, IN Duracion float, IN TipoReto varchar(10))
  83. BEGIN
  84. INSERT INTO Reto (idReto,NomR,Nivel,IdSticker,Puntaje,Duracion, TipoReto) values (idReto,NomR,Nivel,IdSticker,Puntaje,Duracion, TipoReto);
  85. END
  86.  
  87. // DELIMITER ;
  88.  
  89.  
  90.  
  91. DELIMITER //
  92. CREATE PROCEDURE proc_insert_alumno (IN nombre varchar(35), IN apellidop varchar(35), IN apellidom varchar(35), IN contraseña varchar(35), IN matricula varchar(60))
  93. BEGIN
  94. INSERT INTO Alumnos (NomA, ApA, AmA, ConA, Matricula) values (nombre , apellidop, apellidom, contraseña, matricula);
  95. END
  96.  
  97. // DELIMITER ;
  98.  
  99.  
  100. DELIMITER //
  101. CREATE PROCEDURE proc_insert_docente (IN nombre varchar(35), IN apellidop varchar(35), IN apellidom varchar(35), IN als varchar(15), IN contraseña varchar(65))
  102. BEGIN
  103. INSERT INTO Docente (NomA, ApA, AmA, Alias, ConA) values (nombre , apellidop, apellidom, als, contraseña);
  104. END
  105.  
  106. // DELIMITER ;
  107.  
  108.  
  109. DELIMITER //
  110. CREATE PROCEDURE proc_insert_grupo (IN materia varchar(15), IN alias varchar(35), IN grado int, IN grupo char(1), IN turno char(1))
  111. BEGIN
  112. INSERT INTO DatosGrupo (Materia, idDocente, Grado, Grupo, Turno) values (materia, ( SELECT idDocente FROM Docente WHERE Alias = alias), grado, grupo, turno);
  113. END
  114.  
  115. // DELIMITER ;
  116.  
  117.  
  118. DELIMITER //
  119. CREATE PROCEDURE proc_update_alumno (IN identificador int ,IN new_nombre varchar(35), IN new_apellidop varchar(35), IN new_apellidom varchar(35), IN new_contraseña varchar(35), IN new_matricula varchar(60))
  120. BEGIN
  121. UPDATE Alumnos SET NomA = new_nombre , ApA = new_apellidop, AmA = new_apellidom , ConA = new_contraseña, Matricula = new_matricula WHERE idAlumno = identificador;
  122. END
  123.  
  124. // DELIMITER ;
  125.  
  126. DELIMITER //
  127. CREATE PROCEDURE proc_update_grupo (IN base varchar(15), IN new_nom varchar(15), IN alias varchar(10), IN gra int, IN gru char(1), IN turn char(1))
  128. BEGIN
  129. UPDATE DatosGrupo SET Materia = new_nombre , idDocente = ( SELECT idDocente FROM Docente WHERE Alias = alias), Grado = gra , Grupo = gru, Turno = turn WHERE Materia = base;
  130. END
  131.  
  132. // DELIMITER ;
  133.  
  134.  
  135. DELIMITER //
  136. CREATE PROCEDURE proc_update_docente (IN base varchar(15), IN new_nom varchar(15), IN ap varchar(15), IN am varchar(15), IN pasw varchar(60), IN new_al varchar(15))
  137. BEGIN
  138. UPDATE Docente SET NomD = new_nom, ApD = ap, AmD = am, ConD = pasw, Alias = new_al WHERE Alias = base;
  139. END
  140.  
  141. // DELIMITER ;
  142.  
  143.  
  144.  
  145. DELIMITER //
  146. CREATE PROCEDURE proc_delete_alumno (IN matricula varchar(10))
  147. BEGIN
  148. DELETE FROM Alumno WHERE Matricula = matricula;
  149. END
  150.  
  151. // DELIMITER ;
  152.  
  153.  
  154. DELIMITER //
  155. CREATE PROCEDURE proc_unlock_sticker (IN alumno int)
  156. BEGIN
  157. SELECT * FROM Avance WHERE idAlumno=alumno;
  158. END
  159.  
  160. // DELIMITER ;
  161.  
  162.  
  163.  
  164. DELIMITER //
  165. CREATE PROCEDURE proc_delete_grupo (IN mat varchar(15))
  166. BEGIN
  167. DELETE FROM Grupo WHERE idGrupo = (SELECT idGrupo FROM DatosGrupo WHERE Materia = mat);
  168. DELETE FROM DatosGrupo WHERE Materia=mat;
  169. END
  170.  
  171. // DELIMITER ;
  172.  
  173.  
  174. DELIMITER //
  175. CREATE PROCEDURE proc_delete_docente (IN id int)
  176. BEGIN
  177. DELETE FROM Docente WHERE idDocente = id;
  178. END
  179.  
  180. // DELIMITER ;
  181.  
  182.  
  183.  
  184. DELIMITER //
  185. CREATE PROCEDURE proc_select_alumno (IN in_matricula varchar(60))
  186. BEGIN
  187. SELECT * FROM Alumnos WHERE Matricula = in_matricula;
  188. END
  189.  
  190. // DELIMITER ;
  191.  
  192.  
  193. DELIMITER //
  194. CREATE PROCEDURE proc_select_grupos ()
  195. BEGIN
  196. SELECT * FROM DatosGrupo;
  197. END
  198.  
  199. // DELIMITER ;
  200.  
  201.  
  202.  
  203. DELIMITER //
  204. CREATE PROCEDURE proc_select_docentes ()
  205. BEGIN
  206. SELECT * FROM Docente;
  207. END
  208.  
  209. // DELIMITER ;
  210.  
  211.  
  212. DELIMITER //
  213. CREATE PROCEDURE proc_ax_select_docentes (IN als varchar(20))
  214. BEGIN
  215. SELECT * FROM Docente WHERE Alias=als;
  216. END
  217.  
  218. // DELIMITER ;
  219.  
  220.  
  221. DELIMITER //
  222. CREATE PROCEDURE proc_select_all_alumno ()
  223. BEGIN
  224. SELECT * FROM Alumnos;
  225. END
  226.  
  227. // DELIMITER ;
  228.  
  229.  
  230.  
  231. DELIMITER //
  232. CREATE PROCEDURE proc_login_as_alumno (IN identificador VARCHAR(60), IN contraseña VARCHAR(35) )
  233. BEGIN
  234. SELECT * FROM Alumnos WHERE Matricula = identificador AND ConA = contraseña;
  235. END
  236.  
  237. // DELIMITER ;
  238.  
  239.  
  240. DELIMITER //
  241. CREATE PROCEDURE registrar_avance( IN fch varchar(35), IN idalm int, IN idrt int, IN tm float )
  242. BEGIN
  243. DECLARE ptn float;
  244. SELECT tiempo INTO ptn FROM Avance WHERE idAlumno = idalm AND idReto = idrt LIMIT 1;
  245. IF ptn IS NULL THEN
  246. INSERT INTO Avance (Fecha, idAlumno, idReto, tiempo) values (fch, idalm, idrt, tm);
  247. ELSE
  248. IF (ptn < tm) THEN
  249. UPDATE Avance SET tiempo = tm, Fecha = fch WHERE idAlumno = idalm AND idReto = idrt LIMIT 1;
  250. END IF;
  251. END IF;
  252. END
  253. // DELIMITER ;
  254.  
  255.  
  256.  
  257. DELIMITER //
  258. CREATE PROCEDURE proc_login_as_docente (IN identificador VARCHAR(60), IN contraseña VARCHAR(35) )
  259. BEGIN
  260. SELECT * FROM Docentes WHERE Alias = identificador AND ConD = contraseña;
  261. END
  262.  
  263. // DELIMITER ;
  264.  
  265.  
  266. ---------- Llamadas a procedimientos ----------
  267. CALL proc_insert_avance('1','1','10-10-2301');
  268.  
  269. CALL proc_insert_alumno('Jesus Said','Llamas','Manriquez','1234','M1529092');
  270.  
  271. CALL proc_update_alumno (1, 'JESUS SAID','LLAMAS', 'MANRIQUEZ', 'NEWPASW', 'N1234');
  272.  
  273. CALL proc_delete_alumno (1);
  274.  
  275. CALL proc_select_all_alumno();
  276. CALL proc_select_alumno('M1529092')
  277.  
  278. CALL proc_login_as_alumno('M15290902', '1234')
  279. CALL proc_login_as_docente('mas13', '123')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement