You are on page 1of 11

use master

go
drop database bdmatricula
go
create database BDMatricula
go
use BDMatricula
go
create table usuarios
(CodUsu char(10)primary key not null,--int identity (1,1)not null primary key,
nomUsu varchar(50),
apeUsu varchar(50),
cargo varchar(30),
dni char(8),
login varchar(30),
clave char(16))
go
insert into usuarios values('00001','Juan','Vargas','Director','43567892','Direc
tor01','123456')
insert into usuarios values('00002','Maria','Vasquez','Secretaria','42566792','S
ecretaria01','123456')
insert into usuarios values('00003','Piero','Alva','Asistente','04567892','Asist
ente01','123456')
insert into usuarios values('00004','Johan','Garcia','Coordinador','45670892','C
oordinador01','123456')
go
create table Alumnos
(CodAlum char(10)primary key not null, --int identity (1,1) not null primary key
,--
ApeAlum varchar(30),
NomAlum varchar(30),
telefono char(7),
Correo varchar(25),
Direccion varchar(30))
go
insert into alumnos values('00001','Lopez','Jose','7235623','jose@hotmail.com','
Av. Los Aires')
go
create table especialidad
(CodEsp char(10) primary key,--int identity (1,1) not null primary key,--char(10
)primary key,
nom_especialidad varchar(30),
Duracion varchar(30),
vacantes int,
costo money)
go
insert into especialidad values('00001','computacion','3 años',60,'230')
insert into especialidad values('00002','secretariado','3 años',50,'250')
insert into especialidad values('00003','contabilidad','3 años',45,'220')
go
create table cursos_libres
(CodCur char(10)primary key,
nom_curso varchar(30),
Duracion varchar(30),
vacantes int,
costo money)
go
insert into cursos_libres values('00001','diseño web','5 meses',25,'150')
insert into cursos_libres values('00002','ensamblaje','1 año',30,'230')
insert into cursos_libres values('00003','programacion','1 año',45,'150')
insert into cursos_libres values('00004','digitacion','6 meses',30,'100')
insert into cursos_libres values('00005','diseño grafico','6 meses',25,'120')
insert into cursos_libres values('00006','analisis','6 meses',25,'110')
go
create table Boleta_espe(
CodBol char(10)primary key,
codAlum char(10)foreign key references Alumnos,
codEsp char(10) foreign key references especialidad not null,
codUsu char(10)foreign key references Usuarios,
fecha_emision datetime,
total money)
go
insert into boleta_espe values('00001','00001','00003','00002','02/07/2010',220)
go
create table Boleta_cur(
CodBol char(10)primary key,
codAlum char(10)foreign key references Alumnos,
CodCur char(10) foreign key references cursos_libres not null,
codUsu char(10)foreign key references Usuarios,
fecha_emision datetime,
total money)
go
insert into boleta_cur values('00001','00001','00005','00002','02/07/2010',120)
go
create table matriculas_espe
(CodMatri char(10) primary key,
CodAlum char(10)foreign key references alumnos ,
fecha datetime,
CodEsp char(10) foreign key references especialidad,
ciclo varchar(3),
turno varchar(30))
go
insert into matriculas_espe values('00001','00001','02/07/2010','00003','I','Tar
de')
go
create table matriculas_cur
(CodMatri char(10) primary key,
CodAlum char(10)foreign key references alumnos ,
fecha datetime,
CodCur char(10) foreign key references cursos_libres,
ciclo varchar(3),
turno varchar(30))
go
insert into matriculas_cur values('00001','00001','02/07/2010','00005','II','Noc
he')
go
create table Detalle_boleta_esp
(CodBol char(10) foreign key references boleta_espe,
codmatri char(10) foreign key references matriculas_espe,
precio money,
cantidad int)
go
insert into detalle_boleta_esp values('00001','00001',220,1)
go
create table Detalle_boleta_cur
(CodBol char(10) foreign key references boleta_cur,
codmatri char(10) foreign key references matriculas_cur,
precio money,
cantidad int)
go
insert into detalle_boleta_cur values('00001','00001',120,1)
go
--PARA ACCEDER AL SISTEMA
create procedure USP_Validar_Login
@login varchar(30),
@clave char(16)
as
select login, clave
from usuarios
where login= @login and clave=@clave
go
--PROCEDIMIENTOS TABLA ALUMNOS
create procedure USP_Insertar_alumnos
@cod char(10),
@apellidos varchar(30),
@nombre varchar(30),
@telef char(12),
@correo varchar(25),
@dir varchar(30)
as
insert into alumnos values(@cod,@apellidos,@nombre,@telef,@correo,@dir)
go
create procedure USP_Eliminar_alumnos
@cod char(10)
as
delete from alumnos
where CodAlum =@cod
go
create procedure USP_Actualizar_alumnos
@apellidos varchar(30),
@nombre varchar(30),
@telef char(12),
@correo varchar(25),
@dir varchar(30),
@cod char(10)
as
update alumnos
set apeAlum=@apellidos,nomAlum=@nombre,telefono=@telef,correo=@correo,direccion=
@dir
where CodAlum =@cod
go
create procedure USP_Buscar_alumnos
@cod char(10)
as
select*from alumnos
where CodAlum =@cod
go
--PROCEDIMIENTOS TABLA USUARIOS
create procedure USP_Insertar_usuario
@cod char(10),
@nom varchar(30),
@ape varchar(30),
@cargo char(12),
@dni varchar(25),
@login varchar(30),
@clave varchar(30)
as
insert into usuarios values(@cod,@nom,@ape,@cargo,@dni,@login,@clave)
go
create procedure USP_Eliminar_usuario
@cod char(10)
as
delete from usuarios
where CodUsu =@cod
go
create procedure USP_Actualizar_usuario
@nom varchar(30),
@ape varchar(30),
@cargo char(12),
@dni varchar(25),
@login varchar(30),
@clave varchar(30),
@cod char(10)
as
update usuarios
set nomUsu=@nom,apeUsu=@ape,cargo=@cargo,dni=@dni,login=@login,clave=@clave
where CodUsu =@cod
go
create procedure USP_Buscar_Usuario
@cod char(10)
as
select*from usuarios
where CodUsu =@cod
go
--PROCEDIMEINTO ALAMCENADO DE CURSOS LIBRES---
create procedure usp_insertar_cursos
@cod char(10),
@tipo_cur varchar(30),
@duracion varchar(30),
@vac int,
@costo money
as
insert into cursos_libres values(@cod,@tipo_cur ,@duracion ,@vac,@costo)
go
create procedure USP_Actualizar_cursos_libres
@tipo_cur varchar(30),
@duracion varchar(30),
@vac int,
@costo money ,
@cod char(10)
as
update cursos_libres
set nom_curso =@tipo_cur ,duracion=@duracion,vacantes=@vac,costo=@costo
where CodCur=@cod
go
create procedure USP_Eliminar_cursos_libres
@cod char(10)
as
delete from cursos_libres
where CodCur=@cod
go
create procedure usp_buscar_cursos_libres
@cod char(10)
as
select*from cursos_libres
where CodCur =@cod
go
-----procedimiento alamcenado de ESPECIALIDAD
create procedure usp_insertar_ESPECIALIDAD
@cod char(10),
@TIPO_ESP varchar(30),
@duracion varchar(30),
@vac int,
@PENSION MONEY
as
insert into ESPECIALIDAD values(@cod,@TIPO_ESP ,@duracion ,@vac,@PENSION )
go
create procedure USP_Actualizar_ESPECIALIDAD
@nom varchar(30),
@duracion varchar(30),
@costo money ,
@vac int,
@codesp char(10)
as
update especialidad
set nom_especialidad =@nom,duracion=@duracion,vacantes=@vac,costo=@costo
where CodEsp =@codesp
go
create procedure USP_Eliminar_ESPECIALIDAD
@codesp char(10)
as
delete from especialidad
where CodEsp = @CodEsp
go
create procedure usp_buscar_ESPECIALIDAD
@codesp char(10)
as
select*from especialidad where CodEsp =@codEsp
go
--GENERAR CODIGO
CREATE proc maxcod_alumno
as
select MAX(codAlum)as codigo from Alumnos
GO
CREATE proc maxcod_usuario
as
select MAX(codUsu)as codigo from usuarios
GO
create proc maxcod_boleta_esp
as
select MAX(codBol)as codigo from boleta_espe
GO
create proc maxcod_boleta_cur
as
select MAX(codBol)as codigo from Boleta_cur
GO
CREATE proc maxcod_curso
as
select MAX(codCur)as codigo from cursos_libres
GO
CREATE proc maxcod_especialidad
as
select MAX(codEsp)as codigo from especialidad
GO
CREATE proc maxcod_matricula_espe
as
select MAX(codMatri)as codigo from matriculas_espe
GO
CREATE proc maxcod_matricula_cur
as
select MAX(codMatri)as codigo from matriculas_cur
GO
---procedimiento alamcenado de MATRICULAS_ESPE
create procedure usp_insertar_matricula_espe
@cod char(10),
@codAlu char(10),
@fecha datetime,
@codEspe char(10),
@ciclo char(3),
@turno varchar(30)
as
insert into matriculas_espe values(@cod,@codalu,@fecha,@codespe,@ciclo,@turno)
go
create procedure USP_Actualizar_matricula_espe
@codAlu char(10),
@fecha datetime,
@codEspe char(10),
@ciclo varchar(30),
@turno varchar(30),
@cod char(10)
as
update matriculas_espe
set codAlum =@codalu,fecha=@fecha,codesp=@codespe,ciclo=@ciclo,turno=@turno
where CodMatri =@cod
go
create procedure USP_Eliminar_matricula_espe
@cod char(10)
as
delete from matriculas_espe
where CodMatri = @Cod
go
create proc USP_MATRICULAS_espe
@cod char(10)
as
select m.CodMatri,apealum,m.codalum,nomalum,direccion,fecha,nom_especialidad,cic
lo,turno
from alumnos a inner join matriculas_espe m
on a.codalum=m.codalum inner join especialidad e
on m.CodEsp=e.CodEsp
where m.CodMatri=@cod
go
exec usp_matriculas_espe '00001'
create proc USP_MATRICULAS_cur
@cod char(10)
as
select m.CodMatri,apealum,m.codalum,nomalum,direccion,fecha,nom_curso,ciclo,turn
o
from alumnos a inner join matriculas_cur m
on a.codalum=m.codalum inner join cursos_libres c
on m.CodCur=c.CodCur
where m.CodMatri=@cod
go
--PROCEDIMENTO DE MATRICULAS CURSOS
create procedure usp_insertar_matricula_cur
@cod char(10),
@codAlu char(10),
@fecha datetime,
@codCur char(10),
@ciclo char(3),
@turno varchar(30)
as
insert into matriculas_cur values(@cod,@codalu,@fecha,@codcur,@ciclo,@turno)
go
create procedure USP_Actualizar_matricula_cur
@codAlu char(10),
@fecha datetime,
@codCur char(10),
@ciclo varchar(30),
@turno varchar(30),
@cod char(10)
as
update matriculas_cur
set codAlum =@codalu,fecha=@fecha,codCur=@codcur,ciclo=@ciclo,turno=@turno
where CodMatri =@cod
go
create procedure USP_Eliminar_matricula_cur
@cod char(10)
as
delete from matriculas_cur
where CodMatri = @Cod
go
create proc USP_MATRICULAS_cur
@cod char(10)
as
select m.CodMatri,apealum,m.codalum,nomalum,direccion,fecha,nom_curso,ciclo,turn
o
from alumnos a inner join matriculas_cur m
on a.codalum=m.codalum inner join cursos_libres c
on m.CodCur=c.codcur
where m.CodMatri=@cod
go
----------------------------------------------
create proc codalu
as
select codalum from alumnos order by 1
go
create proc usp_codalu
@nom varchar(30)
as
select codalum from alumnos where apealum=@nom
go
create proc usp_codcur
@nom varchar(30)
as
select codcur from cursos_libres where nom_curso=@nom
go
create proc usp_codesp
@nom varchar(30)
as
select codesp from especialidad where nom_especialidad=@nom
go
--**///////TRIGGERS
create trigger vacantes_esp
on matriculas_espe
for insert
as
update especialidad
set vacantes=vacantes-1
from especialidad e inner join inserted i
on e.codesp=i.codesp
go
create trigger vacantes_cur
on matriculas_cur
for insert
as
update cursos_libres
set vacantes=vacantes-1
from cursos_libres c inner join inserted i
on c.codcur=i.codcur
go

-------------------
--PROCEDIMIENTOS CONSULTA DE MATRICULAS
create proc alumnos_matri_espe
as
select codmatri,apealum,a.codalum,fecha,codesp,ciclo,turno
from alumnos a inner join matriculas_espe m
on a.codalum=m.codalum
go
create proc alumnos_matri_cur
as
select codmatri,apealum,a.codalum,fecha,codcur,ciclo,turno
from alumnos a inner join matriculas_cur m
on a.codalum=m.codalum
go

create proc alumnos_matriespe_cod


@ape varchar(30)
as
select codmatri,apealum,a.codalum,fecha,codesp,ciclo,turno
from alumnos a inner join matriculas_espe m
on a.codalum=m.codalum
where apealum=@ape
go
create proc alumnos_matricur_cod
@ape varchar(30)
as
select codmatri,apealum,a.codalum,fecha,codcur,ciclo,turno
from alumnos a inner join matriculas_cur m
on a.codalum=m.codalum
where apealum=@ape
go
create proc alumnos_matri_ape
@cod char(10)
as
select codmatri,apealum,a.codalum,fecha,codesp,codcur,ciclo,turno
from alumnos a inner join matriculas m
on a.codalum=m.codalum
where codmatri=@cod
go
create proc alumnos_matriculados_espe
@cod char(10)
as
select apealum,a.codalum,nomalum,m.codesp,e.nom_especialidad,ciclo,turno,e.costo
from alumnos a inner join matriculas_espe m
on a.codalum=m.codalum inner join especialidad e
on m.codesp=e.codesp
where codmatri=@cod
go
create proc alumnos_matriculados_cur
@cod char(10)
as
select apealum,a.codalum,nomalum,m.codcur,c.nom_curso,ciclo,turno,c.costo
from alumnos a inner join matriculas_cur m
on a.codalum=m.codalum inner join cursos_libres c
on m.codcur=c.CodCur
where codmatri=@cod
go
create proc usp_report_alumno_espe
@espe varchar(30)
as
select a.codalum,apealum,nomalum,correo,direccion,nom_especialidad
from Alumnos a inner join matriculas_espe m
on a.CodAlum=m.CodAlum inner join especialidad e
on m.CodEsp=e.CodEsp
where e.nom_especialidad=@espe
go
create proc usp_report_alumno_cur
@cur varchar(30)
as
select a.codalum,apealum,nomalum,correo,direccion,nom_curso
from Alumnos a inner join matriculas_cur m
on a.CodAlum=m.CodAlum inner join cursos_libres c
on m.Codcur=c.Codcur
where c.nom_curso=@cur
go
create proc usp_report_alumno_fec
@mes varchar(30)
as
select m.fecha,Mes=DATENAME(MM,m.fecha),a.codalum,apealum,nomalum,correo,direcci
on,nom_especialidad
from Alumnos a inner join matriculas_espe m
on a.CodAlum=m.CodAlum inner join especialidad e
on m.CodEsp=e.CodEsp
where DATENAME(MM,m.fecha)=@mes
go
create proc usp_report_alumno_fecha
@fecha datetime
as
select m.fecha,a.codalum,apealum,nomalum,correo,direccion,nom_especialidad
from Alumnos a inner join matriculas m
on a.CodAlum=m.CodAlum inner join especialidad e
on m.CodEsp=e.CodEsp
where m.fecha=@fecha
go
delete from Alumnos
delete from matriculas
select * from detalle_boleta
select * from matriculas_espe

exec usp_matriculas_espe '00001'

You might also like