base datos
25-05-2012
Alumno:______________________________________________________________
Tema 6:
Create table departamentos
( codDep int primary key
, nombre varchar(15)
);create table asignaturas
(codasi varchar(5) primary key
, nombre varchar(15)
, horasemana int
, curso int
);
create table profesores
( codprofe varchar(5) primary key
, nombre varchar(20), coddep int references departamentos
);
create table alumnos
( codalu int primary key identity
, nombre varchar(10)
);
create table notas
(codalu int references alumnos
, codprofevarchar(5) references
profesores
, codasi varchar(5) references
asignaturas
, fecha datetime
, nota numeric(3,1)
, constraint pk_notas primary key
(codalu,codasi,fecha)
);
1.- Escriba una función ala que se le pase como parámetro el código de un alumno y devuelva la nota media
de ese alumno. (4 puntos)
- Ponga un ejemplo de uso de la función anterior. (1 punto)
create functionnotamedia(@codalu int)
returns numeric(4,2)
as
begin
declare @notamedia numeric(4,2)
set @notamedia=(select avg(nota) from notas where codalu=@codalu);
return @notamedia
end;
print dbo.notamedia(1)
2.-Escriba un procedimiento llamado matricular, que reciba como parámetros el nombre y el curso de un
alumno. Este procedimiento deberá:
a- Insertar una fila para dicho alumno en la tabla de alumnos.(4 puntos)
b- Insertar tantas filas en la tabla notas como asignaturas tenga el curso en el que se matricula el alumno. Para
cada fila habrá que dar los valores correspondientes a las columnas:codalu, codasi, fecha(fecha actual),
codprofe(nulo), nota (nulo). El valor de codalu (es identity en la tabla alumnos) se puede obtener con select
max(codalu) from alumnos, después de insertar el alumnoen la tabla alumnos (apartado a). Los valores para
codasi se obtienen de la tabla asignaturas teniendo en cuenta el curso en el que se matricula el alumno. (6
puntos)
Nota máxima: 7 sobre 10....
Regístrate para leer el documento completo.