Skip to content

Commit 036c3fb

Browse files
committed
EDUCA
1 parent 5e7194c commit 036c3fb

File tree

6 files changed

+443
-28
lines changed

6 files changed

+443
-28
lines changed
+372
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,372 @@
1+
/**
2+
*
3+
* DBMS : SQL Server
4+
* Base de Datos : EDUCA
5+
* Descripción : Base de Datos de control académico sencillo
6+
* Script : Crea la Base de Datos
7+
* Creao por : Ing. Eric Gustavo Coronel Castillo
8+
9+
* Blog : http://gcoronelc.blogspot.com
10+
* Cursos virtuales : https://gcoronelc.github.io/
11+
* Canal Youtube : https://www.youtube.com/DesarrollaSoftware
12+
* Fecha creación : 15-Enero-2009
13+
* 1ra actualización : 15-Junio-2023
14+
* Tabla EMPLEADO para saber quien ha registrado la matricula y el pago.
15+
* Campo MATRICULA.mat_tipo para saber el tipo de matricula.
16+
*
17+
**/
18+
19+
20+
-- ======================================================
21+
-- CREA LA BASE DE DATOS
22+
-- ======================================================
23+
24+
USE master;
25+
GO
26+
27+
IF( NOT EXISTS ( SELECT 1 FROM sys.sysdatabases WHERE name='EDUCA' ) )
28+
BEGIN
29+
CREATE DATABASE EDUCA;
30+
END;
31+
GO
32+
33+
USE EDUCA;
34+
GO
35+
36+
-- ======================================================
37+
-- ELIMINA TABLA
38+
-- ======================================================
39+
40+
IF( EXISTS ( SELECT 1 FROM sys.sysobjects
41+
WHERE name='PAGO' and xtype = 'u') )
42+
BEGIN
43+
DROP TABLE dbo.PAGO;
44+
END;
45+
GO
46+
47+
IF( EXISTS ( SELECT 1 FROM sys.sysobjects
48+
WHERE name='MATRICULA' and xtype = 'u') )
49+
BEGIN
50+
DROP TABLE dbo.MATRICULA;
51+
END;
52+
GO
53+
54+
IF( EXISTS ( SELECT 1 FROM sys.sysobjects
55+
WHERE name='CURSO' and xtype = 'u') )
56+
BEGIN
57+
DROP TABLE dbo.CURSO;
58+
END;
59+
GO
60+
61+
IF( EXISTS ( SELECT 1 FROM sys.sysobjects
62+
WHERE name='ALUMNO' and xtype = 'u') )
63+
BEGIN
64+
DROP TABLE dbo.ALUMNO;
65+
END;
66+
GO
67+
68+
IF( EXISTS ( SELECT 1 FROM sys.sysobjects
69+
WHERE name='EMPLEADO' and xtype = 'u') )
70+
BEGIN
71+
DROP TABLE dbo.EMPLEADO;
72+
END;
73+
GO
74+
75+
76+
-- ======================================================
77+
-- CREACION DE TABLAS
78+
-- ======================================================
79+
80+
81+
CREATE TABLE dbo.CURSO
82+
(
83+
cur_id INT IDENTITY ( 1,1 ) ,
84+
cur_nombre varchar(100) NOT NULL ,
85+
cur_vacantes int NOT NULL ,
86+
cur_matriculados int NOT NULL
87+
CONSTRAINT DF_CURSO_MATRICULADOS
88+
DEFAULT 0,
89+
cur_profesor varchar(100) NULL ,
90+
cur_precio money NOT NULL ,
91+
CONSTRAINT pk_curso PRIMARY KEY (cur_id ASC),
92+
CONSTRAINT u_curso_nombre UNIQUE (cur_nombre ASC),
93+
CONSTRAINT chk_curso_vacantes
94+
CHECK ( cur_vacantes > 0 ) ,
95+
CONSTRAINT chk_curso_matriculados
96+
CHECK ( cur_matriculados >= 0 AND cur_matriculados <= cur_vacantes ) ,
97+
CONSTRAINT chk_curso_precio
98+
CHECK ( cur_precio > 0 )
99+
)
100+
go
101+
102+
103+
104+
CREATE TABLE dbo.ALUMNO
105+
(
106+
alu_id INT IDENTITY ( 1,1 ) ,
107+
alu_nombre varchar(100) NOT NULL ,
108+
alu_direccion varchar(100) NOT NULL ,
109+
alu_telefono varchar(20) NULL ,
110+
alu_email varchar(50) NULL ,
111+
CONSTRAINT PK_ALUMNO PRIMARY KEY (alu_id ASC),
112+
CONSTRAINT U_ALUMNO_EMAIL UNIQUE (alu_email ASC),
113+
CONSTRAINT U_ALUMNO_NOMBRE UNIQUE (alu_nombre ASC)
114+
)
115+
go
116+
117+
118+
119+
CREATE TABLE dbo.EMPLEADO
120+
(
121+
emp_id integer IDENTITY ( 1,1 ) ,
122+
emp_apellido varchar(100) NOT NULL ,
123+
emp_nombre varchar(100) NOT NULL ,
124+
emp_direccion varchar(100) NOT NULL ,
125+
emp_email varchar(100) NOT NULL ,
126+
emp_usuario varchar(20) NOT NULL ,
127+
emp_clave varchar(100) NOT NULL ,
128+
CONSTRAINT XPKEMPLEADO PRIMARY KEY (emp_id ASC)
129+
)
130+
go
131+
132+
133+
134+
CREATE TABLE dbo.MATRICULA
135+
(
136+
cur_id INT NOT NULL ,
137+
alu_id INT NOT NULL ,
138+
emp_id integer NOT NULL ,
139+
mat_tipo varchar(20) NOT NULL
140+
CONSTRAINT chk_matricula_tipo
141+
CHECK ( mat_tipo IN ('NORMAL','BECA','MEDIABECA') ),
142+
mat_fecha datetime NOT NULL ,
143+
mat_precio money NOT NULL ,
144+
mat_cuotas int NOT NULL ,
145+
mat_nota int NULL ,
146+
CONSTRAINT PK_MATRICULA PRIMARY KEY (cur_id ASC,alu_id ASC),
147+
CONSTRAINT FK_MATRICULA_CURSO FOREIGN KEY (cur_id) REFERENCES dbo.CURSO(cur_id)
148+
ON DELETE NO ACTION
149+
ON UPDATE NO ACTION,
150+
CONSTRAINT FK_MATRICULA_ALUMNO FOREIGN KEY (alu_id) REFERENCES dbo.ALUMNO(alu_id)
151+
ON DELETE NO ACTION
152+
ON UPDATE NO ACTION,
153+
CONSTRAINT FK_MATRICULA_EMPLEADO FOREIGN KEY (emp_id) REFERENCES dbo.EMPLEADO(emp_id)
154+
ON DELETE NO ACTION
155+
ON UPDATE NO ACTION,
156+
CONSTRAINT CHK_MATRICULA_PRECIO
157+
CHECK ( MAT_PRECIO >= 0.0 ) ,
158+
CONSTRAINT CHK_MATRICULA_CUOTAS
159+
CHECK ( MAT_CUOTAS > 0 )
160+
)
161+
go
162+
163+
164+
165+
CREATE TABLE dbo.PAGO
166+
(
167+
cur_id INT NOT NULL ,
168+
alu_id INT NOT NULL ,
169+
pag_cuota int NOT NULL ,
170+
emp_id integer NOT NULL ,
171+
pag_fecha datetime NOT NULL ,
172+
pag_importe money NOT NULL ,
173+
CONSTRAINT PK_PAGO PRIMARY KEY (cur_id ASC,alu_id ASC,pag_cuota ASC),
174+
CONSTRAINT FK_PAGO_MATRICULA FOREIGN KEY (cur_id,alu_id) REFERENCES dbo.MATRICULA(cur_id,alu_id)
175+
ON DELETE NO ACTION
176+
ON UPDATE NO ACTION,
177+
CONSTRAINT FK_PAGO_EMPLEADO FOREIGN KEY (emp_id) REFERENCES dbo.EMPLEADO(emp_id)
178+
ON DELETE NO ACTION
179+
ON UPDATE NO ACTION
180+
)
181+
go
182+
183+
184+
185+
186+
-- ======================================================
187+
-- DATOS DE LA TABLA ALUMNO
188+
-- ======================================================
189+
190+
SET IDENTITY_INSERT dbo.Alumno ON;
191+
GO
192+
193+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
194+
VALUES( 1,'YESENIA VIRHUEZ','LOS OLIVOS','986412345','[email protected]');
195+
196+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
197+
VALUES( 2,'OSCAR ALVARADO FERNANDEZ','MIRAFLORES',NULL,'[email protected]');
198+
199+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
200+
VALUES( 3,'GLADYS REYES CORTIJO','SAN BORJA','875643562','[email protected]');
201+
202+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
203+
VALUES( 4,'SARA RIEGA FRIAS','SAN ISIDRO',NULL,'[email protected]');
204+
205+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
206+
VALUES( 5,'JHON VELASQUEZ DEL CASTILLO','LOS OLIVOS','78645345','[email protected]');
207+
208+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
209+
VALUES( 6,'RODRIGUEZ ROJAS, RENZO ROBERT','SURCO','673465235','[email protected]');
210+
211+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
212+
VALUES( 7,'CALERO MORALES, EMELYN DALILA','LA MOLINA','896754652','[email protected]');
213+
214+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
215+
VALUES( 8,'KAREN FUENTES','San Isidro','555-5555','[email protected]');
216+
217+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
218+
VALUES( 9,'Yamina Ruiz','San Isidro','965-4521','[email protected]');
219+
220+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
221+
VALUES(10,'MARIA EULALIA VELASQUEZ TORVISCO','SURCO','6573456','[email protected]');
222+
223+
INSERT INTO ALUMNO (alu_id, alu_nombre, alu_direccion, alu_telefono, alu_email )
224+
VALUES(11,'FIORELLA LIZET VITELLA REYES','SAN BORJA','5468790','[email protected]');
225+
GO
226+
227+
SET IDENTITY_INSERT dbo.Alumno OFF;
228+
GO
229+
230+
231+
-- ======================================================
232+
-- DATOS DE LA TABLA CURSO
233+
-- ======================================================
234+
235+
SET IDENTITY_INSERT dbo.Curso ON;
236+
GO
237+
238+
INSERT INTO CURSO(CUR_ID,CUR_NOMBRE,CUR_VACANTES,CUR_PRECIO,CUR_PROFESOR)
239+
VALUES(1,'SQL Server Implementación',24,1000.0,'Gustavo coronel');
240+
241+
INSERT INTO CURSO(cur_id,cur_nombre,cur_vacantes,cur_precio,cur_profesor)
242+
VALUES(2,'SQL Server Administración',24,1000.0,' ');
243+
244+
INSERT INTO CURSO(cur_id,cur_nombre,cur_vacantes,cur_precio,cur_profesor)
245+
VALUES(3,'Inteligencia de Negocios',24,1500.0,'Sergio Matsukawa');
246+
247+
INSERT INTO CURSO(cur_id,cur_nombre,cur_vacantes,cur_precio,cur_profesor)
248+
VALUES(4,'Programación Transact-SQL',24,1200.0,NULL);
249+
250+
INSERT INTO CURSO(cur_id,cur_nombre,cur_vacantes,cur_precio,cur_profesor)
251+
VALUES(5,'Java Fundamentos',24,1600.0,'Gustavo Coronel');
252+
253+
INSERT INTO CURSO(cur_id,cur_nombre,cur_vacantes,cur_precio,cur_profesor)
254+
VALUES(6,'Java Cliente-Servidor',24,1600.0,'Gustavo Coronel');
255+
256+
INSERT INTO CURSO(CUR_ID,CUR_NOMBRE,CUR_VACANTES,CUR_PRECIO,CUR_PROFESOR)
257+
VALUES(7,'GESTION DE PROYECTOS',24,2200.0,'RICARDO MARCELO');
258+
GO
259+
260+
SET IDENTITY_INSERT dbo.Curso OFF;
261+
GO
262+
263+
264+
-- ======================================================
265+
-- DATOS DE LA TABLA EMPLEADO
266+
-- ======================================================
267+
268+
SET IDENTITY_INSERT dbo.empleado ON;
269+
GO
270+
271+
Insert Into dbo.empleado(emp_id,emp_apellido,emp_nombre,emp_direccion,emp_email,emp_usuario,emp_clave)
272+
Values(1,'AGUERO RAMOS','EMILIO','Lima','[email protected]','eaguero','cazador');
273+
Insert Into dbo.empleado(emp_id,emp_apellido,emp_nombre,emp_direccion,emp_email,emp_usuario,emp_clave)
274+
Values(2,'SANCHEZ ROMERO','KATHIA','Miraflores','[email protected]','ksanchez','suerte');
275+
Insert Into dbo.empleado(emp_id,emp_apellido,emp_nombre,emp_direccion,emp_email,emp_usuario,emp_clave)
276+
Values(3,'LUNG WON','FELIX','Los Olivos','[email protected]','flung','por100pre');
277+
Insert Into dbo.empleado(emp_id,emp_apellido,emp_nombre,emp_direccion,emp_email,emp_usuario,emp_clave)
278+
Values(4,'CASTILLO RAMOS','EDUARDO','Barrios altos','[email protected]','ecastillo','hastalavista');
279+
Insert Into dbo.empleado(emp_id,emp_apellido,emp_nombre,emp_direccion,emp_email,emp_usuario,emp_clave)
280+
Values(5,'MILICICH FLORES','LAURA','Collique','[email protected]','lmilicich','turuleka');
281+
Insert Into dbo.empleado(emp_id,emp_apellido,emp_nombre,emp_direccion,emp_email,emp_usuario,emp_clave)
282+
Values(6,'DELGADO BARRERA','KENNETH','La punta','[email protected]','kdelgado','noimporta');
283+
Insert Into dbo.empleado(emp_id,emp_apellido,emp_nombre,emp_direccion,emp_email,emp_usuario,emp_clave)
284+
Values(7,'GARCIA SOLIS','JOSE ELVIS','Barranco','[email protected]','jgarcia','noselodigas');
285+
GO
286+
287+
SET IDENTITY_INSERT dbo.empleado OFF;
288+
GO
289+
290+
-- Operaciones finales
291+
292+
SET DATEFORMAT DMY
293+
GO
294+
295+
DECLARE @ANIO VARCHAR(10);
296+
SET @ANIO = cast(year(getdate()) as varchar);
297+
298+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
299+
VALUES(1, 5, 2, 'MEDIABECA', '15-04-' + @ANIO +' 10:30',500.0,1,15);
300+
301+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
302+
VALUES(1, 3, 3, 'NORMAL', '16-04-' + @ANIO +' 11:45',1000.0,2,18);
303+
304+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
305+
VALUES(1, 4, 2, 'NORMAL', '18-04-' +@ANIO +' 08:33',1000.0,3,12);
306+
307+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
308+
VALUES(2, 1, 4, 'MEDIABECA', '15-04-' + @ANIO +' 12:33',500.0,1,16);
309+
310+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
311+
VALUES(2, 2, 3, 'NORMAL', '01-05-' + @ANIO +' 15:34',1000.0,2,10);
312+
313+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
314+
VALUES(2, 3, 4, 'NORMAL', '03-05-' + @ANIO +' 16:55',1000.0,3,14);
315+
316+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
317+
VALUES(2, 4, 1, 'MEDIABECA', '04-05-' + @ANIO +' 17:00',500.0,1,18);
318+
319+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
320+
VALUES(2, 5, 3, 'MEDIABECA', '06-05-' + @ANIO +' 13:12',500.0,1,17);
321+
322+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
323+
VALUES(3, 7, 2, 'NORMAL', '02-06-' + @ANIO +' 13:12',1500.0,2,15);
324+
325+
INSERT INTO dbo.MATRICULA ( cur_id, alu_id, emp_id, mat_tipo, mat_fecha, mat_precio, mat_cuotas, mat_nota )
326+
VALUES(4, 9, 2, 'NORMAL', '03-06-' + @ANIO +' 11:10',1200.0,2,15);
327+
GO
328+
329+
SELECT * FROM MATRICULA;
330+
331+
-- ======================================================
332+
-- Actualizar la columna matriculados en la tabla curso
333+
-- ======================================================
334+
335+
UPDATE dbo.CURSO
336+
SET cur_matriculados = (
337+
SELECT COUNT(*) FROM dbo.MATRICULA
338+
WHERE dbo.MATRICULA.cur_id = dbo.CURSO.cur_id );
339+
GO
340+
341+
-- ======================================================
342+
-- CARGA DATOS EN LA TABLA PAGO
343+
-- ======================================================
344+
345+
set dateformat dmy
346+
go
347+
348+
declare @anio varchar(10)
349+
set @anio = cast(year(getdate()) as varchar)
350+
351+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(1,3,1,3,'16-04-' + @anio,500)
352+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(1,3,2,5,'16-05-' + @anio,500)
353+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(1,4,1,2,'18-04-' + @anio,400)
354+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(1,4,2,5,'18-05-' + @anio,300)
355+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(2,1,1,4,'15-04-' + @anio,500)
356+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(2,2,1,3,'01-05-' + @anio,500)
357+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(2,3,1,4,'03-05-' + @anio,400)
358+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(2,3,2,5,'03-06-' + @anio,300)
359+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(2,4,1,1,'04-05-' + @anio,500)
360+
insert into dbo.PAGO(cur_id,alu_id,pag_cuota,emp_id,pag_fecha,pag_importe) values(2,5,1,3,'06-05-' + @anio,500)
361+
go
362+
363+
364+
-- ======================================================
365+
-- FIN
366+
-- ======================================================
367+
368+
select * from dbo.ALUMNO
369+
select * from dbo.CURSO
370+
select * from dbo.MATRICULA
371+
select * from dbo.PAGO
372+
go
205 KB
Binary file not shown.
35.8 KB
Loading

0 commit comments

Comments
 (0)