Você está na página 1de 4

SQL AVANZADO

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

Você também pode gostar