You are on page 1of 4

--Creando la Base de Datos

use master
go
if exists(select name from sysdatabases where name='Hospital')
drop database Hospital
go
create database Hospital
go
use Hospital
go
--Creando la Tabla Médico
create table Medico
(
CodMed char(4) primary key,
Medico varchar(20),
Esp varchar(20),
Telf varchar(7),
Dir varchar(30),
Sueldo int
)
Go
--Ingresando Datos a la tabla Medico
insert into Medico values('M001','Bernardo Lopez','Cirujía','2859478','Av. Los Ang
eles',1000)
insert into Medico values('M002','Chavez Gonzales','Respiratorio','4587899','Av.
Los Angeles',2000)
insert into Medico values('M003','Suarez Leandro','Circulatorio','2365478','Av.
Los Angeles',1500)
insert into Medico values('M004','Contreras Galvez','Traumatología','2859478','Av.
Los Angeles',1800)
insert into Medico values('M005','Vasquez Sanchez','Traumatología','2831744','Av.
Los Angeles',1700)
insert into Medico values('M006','Flores Surita','Circulatorio','6833478','Av. L
os Angeles',1800)
insert into Medico values('M007','Ramos Vilca ','Traumatología','7821756','Av. Los
Angeles',1700)
go
select * from Medico
go
--Creando la Tabla Cama
create table Cama
(
Codcam char(4) primary key,
pabellon varchar(1)
)
Go
--Ingresando Datos a la tabla Cama
insert into Cama values('C001','A')
insert into Cama values('C002','B')
insert into Cama values('C003','C')
insert into Cama values('C004','A')
insert into Cama values('C005','D')
insert into Cama values('C006','C')
go
select * from cama
go
--Creando la Tabla Paciente
create table Paciente
(
CodPas char(4) primary key,
ApePas varchar(15),
NomPas varchar(15),
TelPas varchar(7),
DirPas varchar(20)
)
Go
--Ingresando datos a la Tabla Paciente
insert into Paciente values('P001','Perea','Julio','2323232','Jr. Las palomas')
insert into Paciente values('P002','Montes','Cesar','5689554','Jr. Los Laureles'
)
insert into Paciente values('P003','Jimenez','Miguel','2325698','Jr. Los Jazmine
z')
insert into Paciente values('P004','Gonzales','Jaime','7845654','Jr. La Cucardas
')
insert into Paciente values('P005','Humala','Hugo','3621415','Av. Jose Mariátegui'
)
go
select * from paciente
go
--Creando la tabla Historial
create table Historial
(
CodPas char(4),
Fecha datetime,
EstanDias int,
patologia varchar(30),
CodMed char(4),
Cama char(4)
)
Go
--Ingresando datos a la tabla Historial
insert into Historial values('P001','11/08/2002',15,'Traumatismo Craneal','M004'
,'C005')
insert into Historial values('P002','25/01/2001',14,'Ulcera','M002','C002')
insert into Historial values('P003','25/01/2000',3,'Apendecitis','M001','C002')
insert into Historial values('P004','11/08/2000',5,'Operacion Cornea','M001','C0
05')
insert into Historial values('P005','15/09/2001',2,'Ulcera','M001','C004')
insert into Historial values('P002','21/02/2001',7,'Apendecitis','M002','C004')
insert into Historial values('P002','18/03/2000',23,'Ulcera','M004','C003')
insert into Historial values('P005','19/01/2002',19,'Traumatismo Craneal','M004'
,'C003')
insert into Historial values('P005','10/05/2001',15,'Operacion Cornea','M005','C
003')
insert into Historial values('P004','11/08/2001',12,'Ulcera','M004','C001')
insert into Historial values('P004','13/03/2000',11,'Apendecitis','M002','C002')
insert into Historial values('P002','11/11/2002',10,'Traumatismo Craneal','M001'
,'C002')
go
select * from Historial
go
--Relacionando las tables.
alter table Historial add constraint FK_His_Med
foreign key(CodMed) references Medico(CodMed)
go
alter table Historial add constraint FK_His_Cam
foreign key(Cama) references Cama(CodCam)
go
alter table Historial add constraint FK_His_Pac
foreign key(CodPas) references Paciente(CodPas)
--hacer consultas:
--1-)a. Localización de un Paciente en el Hospital.
select hi.codpas,pa.nompas,ca.codcam,ca.pabellon from paciente pa,cama ca,histor
ial hi where hi.codpas=pa.codpas and hi.cama=ca.codcam
--2-)b. Listado de médicos por especialidades.
select esp,medico from medico where esp='Cirujía'
select esp,medico from medico where esp='Respiratorio'
select esp,medico from medico where esp='Circulatorio'
select esp,medico from medico where esp='Traumatología'
--3-)c. Lista de pacientes atendidos por un determinado médico
select hi.codpas,hi.codmed from historial hi where hi.codmed='M004'
select hi.codpas,hi.codmed from historial hi where hi.codmed='M005'
select hi.codpas,hi.codmed from historial hi where hi.codmed='M002'
select hi.codpas,hi.codmed from historial hi where hi.codmed='M001'
--4-)d. Médico que atendio a un determinado paciente en el año 2000
select hi.codmed,hi.codpas,hi.fecha,me.medico from historial hi,medico me where
year(hi.fecha)=2000 and hi.codmed='m001'and hi.codpas='p003' and me.codmed=hi.co
dmed
--5-)e. Listar a todos los medicos que atendieron a los pacientes en el año 2002
select me.medico,hi.codpas,pa.nompas,me.codmed,hi.fecha from medico me,historial
hi,paciente pa where year(hi.fecha)=2000 and hi.codpas=pa.codpas and hi.codmed=
me.codmed
--6-)f. Listar el 4% de los pacientes atendidos.
select top 4 percent hi.codpas,hi.fecha,pa.nompas,pa.apepas from historial hi,pa
ciente pa where hi.codpas=pa.codpas order by hi.fecha desc
--7-)Listar los 3 primeros pacientes atendidos el año 2001
select top 3 hi.codpas,hi.fecha,pa.nompas + ' ' + pa.apepas as [nombres y apell
idos]
from historial hi inner join paciente pa
on year(fecha)=2001 and hi.codpas=pa.codpas
--8)Listar la cantidad de medicos que laboran en el hospital
select count(codmed) as Nr_Medicos from medico
--9-)Listar los médicos que atendieron en el Pabellon A. Indicar la fecha correspo
ndiente.
select hi.codmed,ca.pabellon,me.medico,hi.fecha from historial hi,medico me,cama
ca where me.codmed=hi.codmed and ca.codcam=hi.cama and pabellon='A'
--10)Listar los pacientes internados por fecha y que fueron derivados al Pabello
n D
select hi.codpas,pa.nompas,pa.apepas,hi.fecha,ca.pabellon
from historial hi,cama ca,paciente pa
where hi.cama=ca.codcam and pabellon='D' and hi.codpas=pa.codpas
--11-)k.Eliminar los médicos de la especialidad de Traumatología
delete from medico where esp='Traumatología'
--12-)l.Adicionar el campo sueldo a la tabla Medico
alter table medico add sueldo2 money null
--13-)m-)Asignar Sueldo a los medicos por cada especialidad.
update medico set sueldo2=1500 where esp='traumatología'
update medico set sueldo2=2500 where esp='Cirujía'
update medico set sueldo2=3500 where esp='Circulatorio'
update medico set sueldo2=4500 where esp='Respiratorio'
--14-)m.Aumentar el sueldo de 150 a los de la especialidad de Traumatología
update medico set sueldo=sueldo + 150 where esp='traumatología'
--15-)o.Disminuir el sueldo de 20 a los de la especialidad de Cirujía
update medico set sueldo=sueldo - 20 where esp='cirujía'
--16-)p.
insert into medico values('M008','Sandra Aldaña','cardiologìa','2134522','av balleto
s',3200,00)
select * from Medico
--17-)q-
update medico set esp='pediatra' where esp='traumatologìa'
--18-)r
select top 1 sueldo from medico order by sueldo desc
--19-)s
select top 1 medico,sueldo from medico order by sueldo desc
--20-)t
select sum(sueldo)/2 from medico

You might also like