Está en la página 1de 6

Normalizar Parcial II, Ene-28-2021

cedula nombres Fecha de Correo Genero Especialidad Valor de la


Nacimiento Electrónico Consulta
1000 Juan Perez 12/12/1995 jp@gmail.com Masculino Pediatría 100000
1001 Maria Alvarez 12/11/1990 ma@gmail.com Femenino Ginecología 100000
1002 Pedro Castro 12/10/1992 pc@gmail.com Masculino Oncología 200000
1003 Diana Galindo 12/09/1998 dg@gmail.com Femenino Medicina General 50000
1004 Javier Patiño 12/12/1992 jp@gmail.com Masculino Pediatría 100000
1005 Jesus Caidedo 10/10/1997 jc@gmail.com Masculino Otorrinologia 200000
Especilidad Medico Genero

SQL *Idesp T(3) *nuip T(13) *Idgen T(1) Parcial II, Ene-28-2021
Desesp T(50) Nombres T(120) Desgen T(12)

DDL Fnacim date


Email T(50)
Idgen T(1) Idesp Desesp
Idesp T(3) PE Pediatría
Vrconsulta N(10,0) GI Ginecología
Idgen Desgen
ON Oncología
M Masculino
MG Medicina General
F Femenino
TS Trastorno del Sueño
O Otro
OT Otorrinología

nuip nombres Fnacim email Idgen Idesp Vrconsult


1000 Juan Perez 12/12/1995 jp@gmail.com M PE 100000
1001 Maria Alvarez 12/11/1990 ma@gmail.com F GI 100000
1002 Pedro Castro 12/10/1992 pc@gmail.com M ON 200000
1003 Diana Galindo 12/09/1998 dg@gmail.com F MG 50000
1004 Javier Patiño 12/12/1992 jp@gmail.com M PE 100000
Crear Objetos de BD (Tablas)
Create table sm.genero(
idgen varchar(1) not null primary key check (idgen in('M','F','O')),
desgen varchar(12) not null
);
create tables sm.especialidad(
idesp varchar(3) not null primary key,
desesp varchar(50) not null
);
create table sm.medico(
nuip varchar(13) not null primary key,
nombres varchar(120) not null,
fnacim date,
email varchar(60),
idgen varchar(1) references sm.genero(idgen),
idesp varchar(3) references sm.especialidad(idesp),
vrconsulta numeric(10,0)
);
Agregar Datos
Insert into sm.genero(idgen,desgen) values
('M','Masculino'), ('F','Femenino'),('O','Otro');

insert into sm.especialidad values


('PE','Pediatría'), ('GI','Ginecología'),
('ON','Oncología'), ('MG','Medicina General'),
('TS','Trastorno del Sueño'),('OT','Otorrinología');

insert into sm.medico values


('1000','Juan Perez','12/12/1995','jp@gmail.com','M','PE',900000),
('1001','Maria Alvarez','12/11/1990','ma@gmail.com','F','GI',1000000),
('1002','Pedro Castro','12/10/1992','pc@gmail.com','M','ON',800000),
('1003','Diana Galindo','12/09/1998','dg@gmail.com','F','MG',850000),
('1004','javier Patiño','12/12/1992','jp@gmail.com','M','PE',100000);
Consultar Datos
--Nombres de los médicos ordenados por genero (Mujeres-Hombres) Order by
select nombres,idgen from sm.medico order by idgen; Asc - desc
select nombres,idgen from sm.medico order by idgen desc;
--Datos de los médicos ordenados por costo de la consulta.
select nombres,vrconsulta from sm.medico order by vrconsulta;
Funciones de Agregación
--Contar cuantos médicos son hombres y cuantos son mujeres. Max
select count(idgen) from sm.medico where idgen='M'; Min
select count(idgen) from sm.medico where idgen='F'; Count
select count(idgen) as total,idgen from sm.medico group by idgen; Sum
--Contar cuantos médicos tenemos por cada especialidad Avg
select count(idesp),idesp from sm.medico group by idesp; Distinct
--Mostrar el valor de consulta mas alto. Group by
select max(vrconsulta) from sm.medico;
Stddev
--Mostrar el valor de consulta mas bajo.
select min(vrconsulta) from sm.medico;
--Mostrar la suma total de los valores de consulta. between
select sum(vrconsulta) from sm.medico;
--Promedio del valor de consulta de los médicos.
select avg(vrconsulta) from sm.medico;
Consultar Datos
--Datos de los médicos que nacieron entre 1990 y 1999. Order by
select nombres,fnacim from sm.medico where fnacim between '01/01/1995' and Asc - desc
'31/12/1999';
select nombres,vrconsulta from sm.medico where vrconsulta between 50000 and 800000;
--Datos de los correos electrónicos sin valores repetidos. Funciones de Agregación
select distinct(emails) from sm.medico; Max
--Datos de los médicos y la descripción de su especialidad. Min
Select nombres,desesp from sm.medico natural join sm.especialidad; Count
select nombres,desesp from sm.medico,sm.especialidad where Sum
sm.medico.idesp=sm.especialidad.idesp; Avg
select nombres,desesp from sm.medico m,sm.especialidad e where m.idesp=e.idesp; Distinct
--Datos de los médicos y la descripción de genero. Group by
select nombres,desgen,idgen from sm.medico natural join sm.genero;
Stddev
select nombres,desgen,m.idgen from sm.medico m, sm.genero g where m.idgen=g.idgen;
--Datos de los médicos, la descripción de genero y la descripción de la especialidad.
select nombres,desesp,desgen from sm.genero natural join sm.medico natural join between
sm.especialidad;
select nombres,desesp,desgen from sm.genero g,sm.medico m,sm.especialidad e where
g.idgen=m.idgen and e.idesp=m.idesp;
SELECT stddev(vrconsulta) FROM sm.medico;

También podría gustarte