Trabajar con la tabla ALUMNO creada en la actividad de
la Unidad 3 1. Crear un procedimiento almacenado que permita grabar datos a la Tabla ALUMNO. /*Procedimiento almacenado para grabar los datos a la tabla alumno*/ DELIMITER $$ CREATE PROCEDURE `bdcolegio`.`GRABAR_DATOS_ALUMNOS` ( Cdigo INT (5), Nombre VARCHAR (30), Apellido VARCHAR (35), Direccin VARCHAR (75), Email VARCHAR (45), Fecha_Nacimiento DATE, Distrito VARCHAR (70), Pensin VARCHAR (15) ) BEGIN INSERT INTO alumno VALUES (Cdigo, Nombre, Apellido, Direccin, Email, Fecha_Nacimiento, Distrito, Pensin); END$$ DELIMITER ; -------------------------------------------------------------------------------------------------------------------------/* Sentencia SQL para grabar los Datos: */ CALL grabar_datos_alumnos ('11', 'Rogelio', 'Matrix Zero', 'Rosas', 'da@io.com', '1999-12-12', 'San juan', '1111')
2. Crear un procedimiento almacenado
actualizar datos a la tabla ALUMNO.
que
permita
/*Procedimiento almacenado para actualizar datos de la tabla alumno*/
DELIMITER $$ CREATE PROCEDURE `bdcolegio`.`ACTUALIZAR_DATOS_ALUMNOS` ( pCdigo INT(5), Nombre VARCHAR (30), Apellido VARCHAR (35), Direccin VARCHAR(75), Email VARCHAR (45), Fecha_Nacimiento DATE, Distrito VARCHAR (70), Pensin VARCHAR (15) ) BEGIN UPDATE alumno SET Nombre=Nombre, Apellido=Apellido, Direccin=Direccin, Email=Email, Fecha_Nacimiento=Fecha_Nacimiento, Distrito=Distrito, Pensin=Pensin WHERE Cdigo=pCdigo; END$$ DELIMITER ; ---------------------------------------------------------------------------------------------------------------------------/*Sentencia SQL para Actualizar datos de la tabla alumno*/ CALL actualizar_datos_alumnos ('10', 'Santos ', 'Matrix Resonancia ', 'Rosas carcajadas', 'dario@ioman.com', '1999-12-12', 'San Loreto', '9999')
3. Crear un trigger que no permita grabar un nombre y
apellido que ya exista en la tabla ALUMNO. SELECT * FROM XT_RESPALDO_ALUMNO CREATE TRIGGER GRABAR_NOT_APE_NOM ON alumno FOR INSERT AS DECLARE nom VARCHAR (30), apellid VARCHAR (35) SELECT nom=Nombre apellid=Apellido FROM inserted IF (SELECT COUNT (*) FROM alumno WHERE Nombre=nom AND Apellido=apellid)>1 BEGIN RaisError('Nombre, Apellido ya existe',0,1) ROLLBACK TRANSACTION END Go
4. Crear un trigger que no permita grabar si en el campo de
fecha de nacimiento se ingresa una fecha mayor al ao 01/01/95
CREATE TRIGGER GRABAR
ON fecha FOR INSERTED AS DECLARE fecha DATE SELECT fecha=mat_fecha from inserted IF (select count (*) FROM matricula WHERE mat_fecha > 01/01/1995) BEJN RaisError (Fecha de matrcula es mayor a 01/01/1995) ROLLBACK TRANSACTION END Go