sql_avanzado

Upload: alexander-choque

Post on 04-Nov-2015

218 views

Category:

Documents


0 download

DESCRIPTION

Sql_Avanzado

TRANSCRIPT

SQL AVANZADOTrabajar con la tabla ALUMNO creada en la actividad de la Unidad 31. Crear un procedimiento almacenado que permita grabar datos a la Tabla ALUMNO.DELIMITER$$CREATE PROCEDURE`bdcolegio`.`GRABAR_DATOS_ALUMNOS`(CdigoINT(5),NombreVARCHAR(30),ApellidoVARCHAR(35),DireccinVARCHAR(75),EmailVARCHAR(45),Fecha_NacimientoDATE,DistritoVARCHAR(70),PensinVARCHAR(15))BEGININSERT INTOalumnoVALUES(Cdigo, Nombre, Apellido, Direccin, Email, Fecha_Nacimiento, Distrito, Pensin);END$$DELIMITER;2. Crear un procedimiento almacenado que permita actualizar datos a la tabla ALUMNO.DELIMITER$$CREATE PROCEDURE`bdcolegio`.`ACTUALIZAR_DATOS_ALUMNOS`(pCdigoINT(5),NombreVARCHAR(30),ApellidoVARCHAR(35),DireccinVARCHAR(75),EmailVARCHAR(45),Fecha_NacimientoDATE,DistritoVARCHAR(70),PensinVARCHAR(15))BEGINUPDATEalumnoSETNombre=Nombre,Apellido=Apellido, Direccin=Direccin, Email=Email,Fecha_Nacimiento=Fecha_Nacimiento, Distrito=Distrito, Pensin=PensinWHERECdigo=pCdigo;END$$DELIMITER;3. Crear un trigger que no permita grabar un nombre y apellido que ya exista en la tabla ALUMNO.SELECT * FROM XT_RESPALDO_ALUMNOCREATE TRIGGER GRABAR_NOT_APE_NOMON alumno FOR INSERTASDECLAREnom VARCHAR(30),apellid VARCHAR(35)SELECTnom=Nombreapellid=ApellidoFROM insertedIF (SELECT COUNT(*) FROM alumno WHERE Nombre=nom AND Apellido=apellid)>1BEGINRaisError('Nombre, Apellido ya existe',0,1)ROLLBACK TRANSACTIONENDGo4. Crear un trigger que no permita grabar si en el campo de fecha de nacimiento se ingresa una fecha mayor al ao 01/01/95CREATE TRIGGER GRABARON fecha FOR INSERTEDASDECLARE fecha DATESELECT fecha=mat_fecha from insertedIF (select count (*) FROM matricula WHERE mat_fecha > 01/01/1995)BEJNRaisError (Fecha de matrcula es mayor a 01/01/1995)ROLLBACK TRANSACTIONENDGo