El documento contiene ejemplos de consultas SQL y procedimientos almacenados utilizados para gestionar una base de datos educativa. Incluye consultas para obtener cursos, profesores, calificaciones de alumnos e inscripciones, así como un procedimiento almacenado para registrar nuevas inscripciones y triggers para modificar el caso de los nombres de cursos al insertar o actualizar datos.
1. Reportes y consultas CURSOS IMPARTIDOS INPUT select id_curso, nombre_curso, dia_impartido from Ceclav.dbo.Curso OUTPUT 120142062230 ALUMNOS INSCRITOS POR PROMOTOR INPUT SELECT p.id_promotor, p.nombre_promotor, p.apellido_pat, (SELECT COUNT (*) FROM Ceclav.dbo.Inscripcion i WHERE p.id_promotor = i.id_promotor) AS alumnos_inscritos FROM Ceclav.dbo.Promotor p; OUTPUT 937260203200 CURSOS QUE IMPARTEN LOS MAESTROS INPUT SELECT id_prof, nombre_prof, apellido_mat, nombre_curso FROM Ceclav.dbo.Profesor, Ceclav.dbo.Curso WHERE id_curso = id_curso_imp OUTPUT 1236345322580 CALIFICACIONES DE ALUMNOS INPUT SELECT c.id_alumno ,a.nombre_alumno, a.apellido_pat, c.id_curso, c.calificacion FROM Ceclav.dbo.Alumno a, Ceclav.dbo.Calificacion c WHERE a.id_alumno = c.id_alumno OUTPUT Procedure PROCEDIMIENTO ALMACENADO PARA DETERMINAR UNA NUEVA INSCRIPCIÓN INPUT CREATE PROCEDURE NuevaInscripcion @id_alumno INT AS --Declaración de la variable para la nueva inscripción DECLARE @id_insc INT -- Se toma el valor maximo de la tabla inscripción SELECT @id_insc=MAX(id_inscrip) FROM Inscripcion ---Determinando la siguiente inscripción SELECT @id_insc=@id_insc+1 ---Insertando la nueva inscripción INSERT INTO Inscripcion(id_inscrip, id_curso, id_alumno, id_prof, id_promotor, pago_insc) VALUES(@id_insc, GETDATE(), @id_alumno) ---Regresando el valor de la inscripción RETURN @id_insc; Transacción TRANSACCIÓN INICIO DE UNA INSCRIPCIÓN INPUT INSERT INTO Alumno(id_alumno, apellido_pat, apellido_mat, direccion) VALUES(239379, 'Angelica', 'Naranjo', 'F. I. Madero'); SAVE TRANSACTION ComienzoInscripcion; INSERT INTO Inscripcion(id_inscrip, id_curso, id_prof, id_alumno, id_promotor, pago_insc) VALUES(2000, 383, 1005, 239379, 999, '600.00'); IF @@ERROR<> 0 ROLLBACK TRANSACTION ComienzoInscripcion; COMMIT TRANSACTION Trigger DISPARADOR QUE SE UTILIZA PARA INSERTAR Y ACTUALIZAR LA TABLA CURSO CON MINUSCULA INPUT CREATE TRIGGER CambioCurso ON Curso FOR INSERT, UPDATE AS UPDATE Curso SET nombre_curso = LOWER(nombre_curso) WHERE Curso.id_curso = inserted.id_curso; DISPARADOR QUE SE UTILIZA PARA INSERTAR Y ACTUALIZAR LA TABLA CURSO CON MAYUSCULA INPUT CREATE TRIGGER CambioCurso ON Curso FOR INSERT, UPDATE AS UPDATE Curso SET nombre_curso = UPPER(nombre_curso) WHERE Curso.id_curso = inserted.id_curso;