Sie sind auf Seite 1von 17

Ejercicios:

Utilizando instrucciones SQL, realice las siguientes actividades:

1. Cree una base de datos llamada laboratorioSQL.

create database laboratoriosql;

2. Ubicado en la base de datos que acabó de crear, construya las


siguientes tablas con los respectivos campos y tipos de datos.

use laboratoriosql;

Tabla Profesores:

Profesor Tipo Longitud


doc_prof (pk) varchar 11
nom_prof varchar 30
ape_prof varchar 30
cate_prof int
sal_prof int

create table profesor


(
doc_prof varchar(11) not null,
nom_prof varchar(30) not null,
ape_prof varchar(30) not null,
cate_prof int not null,
sal_prof int not null,
primary key(doc_prof),
unique(doc_prof)
);

Datos tabla: PROFESOR


doc_prof nom_prof ape_prof cate_prof sal_prof
63502720 Martha Rojas 2 690000
91216904 Carlos Pérez 3 950000
13826789 Maritza Angarita 1 550000
1098765789 Alejandra Torres 4 1100000

insert into profesor


(doc_prof,nom_prof,ape_prof,cate_prof,sal_prof)
values('63502720','Martha','Rojas',2,690000);
insert into profesor
(doc_prof,nom_prof,ape_prof,cate_prof,sal_prof)
values('91216904','Carlos','Perez',3,950000);

insert into profesor


(doc_prof,nom_prof,ape_prof,cate_prof,sal_prof)
values('13826789','Maritza','Angarita',1,550000);

insert into profesor


(doc_prof,nom_prof,ape_prof,cate_prof,sal_prof)
values('1098765789','Alejandra','Torres',4,1100000);

Tabla Cursos:

Curso Tipo Longitud


cod_curs (pk) varchar 6
nom_curs varchar 100
horas_cur int
valor_cur int

create table curso


(
cod_curs varchar(6) not null,
nom_curs varchar(100) not null,
horas_cur int not null,
valor_cur int not null,
primary key(cod_curs)
);

Datos tabla: CURSO


cod_curs nom_curs horas_cur valor_cur
149842 Fundamentos de Bases de datos 40 500000
250067 Fundamentos de SQL 20 700000
289011 Manejo de Mysql 45 550000
345671 Fundamentals of Oracle 60 3000000

insert into curso


(cod_curs,nom_curs,horas_cur,valor_cur)
values('149842','Fundamentos de Bases de datos',40,500000);

insert into curso


(cod_curs,nom_curs,horas_cur,valor_cur)
values('250067','Fundamentos de SQL',20,700000);
insert into curso
(cod_curs,nom_curs,horas_cur,valor_cur)
values('289011','Manejo de Mysql',45,550000);

insert into curso


(cod_curs,nom_curs,horas_cur,valor_cur)
values('345671','Fundamentals of Oracle',60,3000000);

Tabla Estudiantes:

Estudiante Tipo Longitud


doc_est (pk) varchar 11
nom_est varchar 30
ape_est varchar 30
edad_est int

create table estudiante


(
doc_est varchar(11) not null,
nom_est varchar(30) not null,
ape_est varchar(30) not null,
edad_est int not null,
primary key(doc_est),
unique(doc_est)
);

Datos tabla: Estudiante


doc_est nom_est ape_est edad_est
63502720 María Perez 23
91245678 Carlos José Lopez 25
1098098097 Jonatan Ardila 17
1098765678 Carlos Martinez 19

insert into estudiante


(doc_est,nom_est,ape_est,edad_est)
values('63502720','María','Perez',23);

insert into estudiante


(doc_est,nom_est,ape_est,edad_est)
values('91245678','Carlos José','Lopez',25);

insert into estudiante


(doc_est,nom_est,ape_est,edad_est)
values('1098098097','Jonatan','Ardila',17);

insert into estudiante


(doc_est,nom_est,ape_est,edad_est)
values('1098765678','Carlos','Martinez',19);

Tabla Estudiantes por curso:

Estudiantexcurso Tipo Longitud


cod_cur_estcur (fk) varchar 6
doc_est_estcur (fk) varchar 11
fec_ini_estcur date

create table estudiantexcurso


(
cod_cur_estcur varchar(6) not null,
doc_est_estcur varchar (11) not null,
fec_ini_estcur date not null,
foreign key(cod_cur_estcur) references curso(cod_curs),
foreign key(doc_est_estcur) references estudiante(doc_est)
);

Datos tabla: Estudiantexcurso


cod_cur_estcur doc_est_estcur fec_ini_estcur
289011 1098765678 2011-01-02
250067 63502720 2011-01-03
289011 1098098097 2011-01-02
345671 63502720 2011-01-04

insert into estudiantexcurso


(cod_cur_estcur,doc_est_estcur,fec_ini_estcur)
values('289011','1098765678','2011-01-02');

insert into estudiantexcurso


(cod_cur_estcur,doc_est_estcur,fec_ini_estcur)
values('250067','63502720','2011-01-03');

insert into estudiantexcurso


(cod_cur_estcur,doc_est_estcur,fec_ini_estcur)
values('289011','1098098097','2011-01-02');

insert into estudiantexcurso


(cod_cur_estcur,doc_est_estcur,fec_ini_estcur)
values('345671','63502720','2011-01-04');

Tabla Clientes:

Cliente Tipo Longitud


id_cli (pk) varchar 11
nom_cli varchar 30
ape_cli varchar 30
dir_cli varchar 100
dep_cli varchar 20
mes_cum_cli varchar 10

create table cliente


(
id_cli varchar(11) not null,
nom_cli varchar(30) not null,
ape_cli varchar(30) not null,
dir_cli varchar(100) not null,
dep_cli varchar(20) not null,
mes_cum_cli varchar(10),
primary key(id_cli),
unique(id_cli)
);

Datos tabla: Cliente


id_cli nom_cli ape_cli dir_cli dep_cli mes_cum_cli
63502718 Maritza Rojas Cll 34 14-45 Santander Abril
13890234 Roger Ariza Cra 30 13-45 Antioquia Junio
77191956 Juan Carlos Arenas Diag 23 12-34 ap101 Valle Marzo
1098765789 Catalina Zapata Av Libertador 30-14 Cauca Marzo

insert into cliente


(id_cli,nom_cli,ape_cli,dir_cli,dep_cli,mes_cum_cli)
values('63502718','Maritza','Rojas','Cll 34 14-45','Santander','Abril');

insert into cliente


(id_cli,nom_cli,ape_cli,dir_cli,dep_cli,mes_cum_cli)
values('13890234','Roger','Ariza','Cra 30 13-45','Antioquia','Junio');

insert into cliente


(id_cli,nom_cli,ape_cli,dir_cli,dep_cli,mes_cum_cli)
values('77191956','Juan Carlos','Arenas','Diag 23 12-34
ap101','Valle','Marzo');

insert into cliente


(id_cli,nom_cli,ape_cli,dir_cli,dep_cli,mes_cum_cli)
values('1098765789','Catalina','Zapata','Av Libertador 30-
14','Cauca','Marzo');

Tabla Artículos:

Articulo Tipo Longitud


id_art (pk) int autoincrementable
tit_art varchar 100
aut_art varchar 100
edi_art varchar 300
prec_art int

create table articulo


(
id_art int not null auto_increment,
tit_art varchar(100) not null,
aut_art varchar(100) not null,
edi_art varchar(300) not null,
prec_art int not null,
primary key(id_art)
)auto_increment=1;

Datos tabla: Articulo


id_art tit_art aut_art edi_art prec_art
1 Redes cisco Ernesto Arigasello Alfaomega - 60000
Rama
2 Facebook y twitter para Veloso Claudio Alfaomega 52000
adultos
3 Creación de un portal con Jacobo Pavón Alfaomega - 40000
php y mysql Puertas Rama
4 Administración de Julio Gómez López Alfaomega - 55000
sistemas operativos Rama

insert into articulo


(tit_art,aut_art,edi_art,prec_art)
values('Redes cisco','Ernesto Arigasello','Alfaomega-Rama',60000);
insert into articulo
(tit_art,aut_art,edi_art,prec_art)
values('Facebook y twitter para adultos','Veloso
Claudio','Alfaomega',52000);

insert into articulo


(tit_art,aut_art,edi_art,prec_art)
values('Creación de un portal con php y mysql','Jacobo Pavón
Puertas','Alfaomega-Rama',40000);

insert into articulo


(tit_art,aut_art,edi_art,prec_art)
values('Administración de sistemas operativos','Julio Gómez
López','Alfaomega-Rama',55000);

Tabla Pedidos:

Pedido Tipo Longitud


id_ped (pk) int autoincrementable
id_cli_ped (fk) varchar 11
fec_ped date
val_ped int

Create table pedido


(
id_ped int not null auto_increment,
id_cli_ped varchar(11) not null,
fec_ped date not null,
val_ped int not null,
primary key(id_ped),
foreign key(id_cli_ped) references cliente(id_cli)
)auto_increment=1;

Datos tabla: Pedido


id_ped id_cli_ped fec_ped val_ped
1 63502718 2012-05-25 120000
2 77191956 2012-04-30 55000
3 63502718 2011-12-10 260000
4 1098765789 2012-02-25 1800000

insert into pedido


(id_cli_ped,fec_ped,val_ped)
values('63502718','2012-05-25',120000);

insert into pedido


(id_cli_ped,fec_ped,val_ped)
values('77191956','2012-04-30',55000);

insert into pedido


(id_cli_ped,fec_ped,val_ped)
values('63502718','2011-12-10',260000);

insert into pedido


(id_cli_ped,fec_ped,val_ped)
values('1098765789','2012-02-25',1800000);

Tabla Artículos por pedido:

Articuloxpedido Tipo Longitud


id_ped_artped (fk) int
id_art_artped (fk) int
can_art_artped int
val_ven_art_artped int

create table articuloxpedido


(
id_ped_artped int not null,
id_art_artped int not null,
can_art_artped int not null,
val_ven_art_artped int not null,
foreign key(id_ped_artped) references pedido(id_ped),
foreign key(id_art_artped) references articulo(id_art)
);

Datos tabla: Articulo por pedido


id_ped_artped id_art_artped can_art_artped val_ven_art_artped
1 3 5 40000
1 4 12 55000
2 1 5 65000
3 2 10 55000
3 3 12 45000
4 1 20 65000

insert into articuloxpedido


(id_ped_artped,id_art_artped,can_art_artped,val_ven_art_artped)
values(1,3,5,40000);

insert into articuloxpedido


(id_ped_artped,id_art_artped,can_art_artped,val_ven_art_artped)
values(1,4,12,55000);

insert into articuloxpedido


(id_ped_artped,id_art_artped,can_art_artped,val_ven_art_artped)
values(2,1,5,65000);

insert into articuloxpedido


(id_ped_artped,id_art_artped,can_art_artped,val_ven_art_artped)
values(3,2,10,55000);

insert into articuloxpedido


(id_ped_artped,id_art_artped,can_art_artped,val_ven_art_artped)
values(3,3,12,45000);

insert into articuloxpedido


(id_ped_artped,id_art_artped,can_art_artped,val_ven_art_artped)
values(4,1,20,65000);

Tabla Compañías:

Compañía Tipo Longitud


comnit (pk) varchar 11
comnombre varchar 30
comañofun int
comreplegal varchar 100

create table compañia


(
comnit varchar(11) not null,
comnombre varchar(30) not null,
comañofun int not null,
comreplegal varchar(100) not null,
primary key(comnit)
);

Datos tabla: Compañia


comnit comnombre comañofun comreplegal
800890890-2 Seguros Atlantida 1998 Carlos López
899999999-1 Aseguradora Rojas 1991 Luis Fernando Rojas
899999999-5 Seguros del Estadio 2001 Maria Margarita Pérez

insert into compañia(comnit,comnombre,comañofun,comreplegal)


value('800890890-2','Seguros Atlantida',1998,'Carlos López');

insert into compañia(comnit,comnombre,comañofun,comreplegal)


value('899999999-1','Aseguradora Rojas',1991,'Luis Fernando Rojas');

insert into compañia(comnit,comnombre,comañofun,comreplegal)


value('899999999-5','Seguros del Estadio',2001,'Maria Margarita Pérez');

Tabla Tipos de automotores:

TiposAutomotores Tipo Longitud


auttipo (pk) int
autnombre varchar 15

create table tiposautomotores


(
auttipo int not null auto_increment,
autnombre varchar(15) not null,
primary key(auttipo)
)auto_increment=1;

Datos tabla: TiposAutomotores


auttipo autnombre
1 Automóvil
2 Campero
3 Camión

insert into tiposautomotores(autnombre)


values('Automóvil');

insert into tiposautomotores(autnombre)


values('Campero');

insert into tiposautomotores(autnombre)


values('Camión');

Tabla Automotores:
Automotores Tipo Longitud
autoplaca (pk) varchar 6
automarca varchar 30
autotipo (fk) int
automodelo int
autonumpasajeros int
autocilindraje int
autonumchasis varchar 20

create table automotores


(
autoplaca varchar(6) not null,
automarca varchar(30) not null,
autotipo int not null,
automodelo int not null,
autonumpasajeros int not null,
autocilindraje int not null,
autonumchasis varchar(20),
primary key(autoplaca),
foreign key(autotipo) references tiposautomotores(auttipo)
);

Datos tabla: Automotores


autoplaca automarca autotipo automodelo autonum auto autonum
pasajeros cilindraje chasis
FLL420 chevrolet 1 2003 5 1400 wywzzz167kk
corsa 009d25
DKZ820 renault 1 2008 5 1600 wywwzz157kk
stepway 009d45
KJQ920 kia 2 2009 7 2000 wywzzz157kk
sportage 009d25

insert into automotores


(autoplaca,automarca,autotipo,automodelo,autonumpasajeros,autocilindraje,au
tonumchasis)
values('FLL420','chevrolet corsa',1,2003,5,1400,'wywzzz167kk009d25');

insert into automotores


(autoplaca,automarca,autotipo,automodelo,autonumpasajeros,autocilindraje,au
tonumchasis)
values('DKZ820','renault stepway',1,2008,5,1600,'wywwzz157kk009d45');

insert into automotores


(autoplaca,automarca,autotipo,automodelo,autonumpasajeros,autocilindraje,au
tonumchasis)
values('KJQ920','kia sportage',2,2009,7,2000,'wywzzz157kk009d25');

Tabla Seguros:

Aseguramientos Tipo Longitud


asecodigo (pk) int autoincrementable
asefechainicio date
asefechaexpiracion date
asevalorasegurado int
aseestado varchar 30
asecosto int
aseplaca (fk) varchar 6

create table aseguramientos


(
asecodigo int not null auto_increment,
asefechainicio date not null,
asefechaexpiracion date not null,
asevalorasegurado int not null,
aseestado varchar(30) not null,
asecosto int not null,
aseplaca varchar(6) not null,
primary key(asecodigo),
foreign key(aseplaca) references automotores(autoplaca)
)auto_increment=1;

Datos tabla: Aseguramientos


asecodigo asefecha asefecha asevalor aseestado asecosto aseplaca
inicio expiracion asegurado
1 2012-09-30 2013-09-30 30000000 Vigente 500000 FLL420
2 2012-09-27 2013-09-27 35000000 Vigente 600000 DKZ820
3 2011-09-28 2012-09-28 50000000 Vencido 800000 KJQ920

insert into aseguramientos


(asefechainicio,asefechaexpiracion,asevalorasegurado,aseestado,asecosto,ase
placa)
values('2012-09-30','2013-09-30',30000000,'Vigente',500000,'FLL420');

insert into aseguramientos


(asefechainicio,asefechaexpiracion,asevalorasegurado,aseestado,asecosto,ase
placa)
values('2012-09-27','2013-09-27',35000000,'Vigente',600000,'DKZ820');

insert into aseguramientos


(asefechainicio,asefechaexpiracion,asevalorasegurado,aseestado,asecosto,ase
placa)
values('2011-09-28','2012-09-28',50000000,'Vencido',800000,'KJQ920');

Tabla Incidentes:

Incidentes Tipo Longitud


incicodigo (pk) int autoincrementable
incifecha date
inciplaca (fk) varchar 6
incilugar varchar 40
incicantheridos int
incicanfatalidades int
incicanautosinvolucrados int

create table incidentes


(
incicodigo int not null auto_increment,
incifecha date not null,
inciplaca varchar(6) not null,
incilugar varchar(40) not null,
incicantheridos int not null,
incicanfatalidades int not null,
incicanautosinvolucrados int not null,
primary key(incicodigo),
foreign key(inciplaca) references automotores(autoplaca)
)auto_increment=1;

Datos tabla: Incidentes


inci incifecha inciplaca incilugar incicant incican incican
codigo heridos fatalidades autos
involucrados
1 2012-09-30 DKZ820 Bucaramanga 0 0 2
2 2012-09-27 FLL420 Girón 1 0 1
3 2011-09-28 FLL420 Bucaramanga 1 0 2

insert into incidentes


(incifecha,inciplaca,incilugar,incicantheridos,incicanfatalidades,incicanau
tosinvolucrados)
values('2012-09-30','DKZ820','Bucaramanga',0,0,2);

insert into incidentes


(incifecha,inciplaca,incilugar,incicantheridos,incicanfatalidades,incicanau
tosinvolucrados)
values('2012-09-30','FLL420','Girón',1,0,1);

insert into incidentes


(incifecha,inciplaca,incilugar,incicantheridos,incicanfatalidades,incicanau
tosinvolucrados)
values('2011-09-28','FLL420','Bucaramanga',1,0,2);

4. Realice las siguientes consultas:

• Muestre los salarios de los profesores ordenados por categoría.

select sal_prof from profesor order by sal_prof;

• Muestre los cursos cuyo valor sea mayor a $500.000.

select * from curso where valor_cur > 500000;

• Cuente el número de estudiantes cuya edad sea mayor a 22.

select count(doc_est) from estudiante where edad_est > 22;

• Muestre el nombre y la edad del estudiante más joven.

select nom_est,min(edad_est) from estudiante;

• Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.

select avg(valor_cur) from curso where horas_cur > 40;

• Obtener el sueldo promedio de los profesores de la categoría 1.

select avg(sal_prof) from profesor where cate_prof=1;

• Muestre todos los campos de la tabla curso en orden ascendente según el valor.

select * from curso order by valor_cur asc;

• Muestre el nombre del profesor con menor sueldo.


select nom_prof,sal_prof from profesor where sal_prof=(select min(sal_prof)
from profesor);

• Visualizar todos los estudiantes (código y nombre) que iniciaron cursos el 01/02/2011, del
curso debe mostrarse el nombre, las horas y el valor.

select
estudiante.doc_est,estudiante.nom_est,estudiantexcurso.fec_ini_estcur,
curso.nom_curs,curso.horas_cur,curso.valor_cur
from estudiante,estudiantexcurso,curso
where estudiantexcurso.fec_ini_estcur='2011-01-02';

• Visualice los profesores cuyo sueldo este entre $500.000 y $700.000.

select * from profesor where sal_prof > 500000 and sal_prof < 700000;

• Visualizar el nombre, apellido y dirección de todos aquellos clientes que hayan realizado un
pedido el día 25 /02/2012.

select nom_cli,ape_cli,dir_cli from cliente where id_cli=(select id_cli_ped


from pedido where fec_ped='2012-02-25');

• Listar todos los pedidos realizados incluyendo el nombre del articulo.

select pedido.id_ped,articulo.tit_art,pedido.id_cli_ped,
pedido.fec_ped,pedido.val_ped from pedido,articulo;

• Visualizar los clientes que cumplen años en marzo.

select * from cliente where mes_cum_cli='Marzo';

• Visualizar los datos del pedido 1, incluyendo el nombre del cliente, la dirección del mismo,
el nombre y el valor de los artículos que tiene dicho pedido.

select cliente.nom_cli,cliente.dir_cli,articulo.tit_art,articulo.prec_art
from cliente,articulo,pedido where pedido.id_ped=1;

• Visualizar el nombre del cliente, la fecha y el valor del pedido más costoso.

select max(pedido.val_ped),cliente.nom_cli,pedido.fec_ped,pedido.val_ped
from cliente,pedido;

• Mostrar cuantos artículos se tienen de cada editorial.

select edi_art, count(*) from articulo group by edi_art;

• Mostrar los pedidos con los respectivos artículos(código, nombre, valor y cantidad pedida).
select articulo.id_art, articulo.tit_art, articulo.prec_art,
articuloxpedido.can_art_artped from articulo, articuloxpedido;

• Visualizar todos los clientes organizados por apellido.

select * from cliente order by ape_cli;

• Visualizar todos los artículos organizados por autor.

select * from articulo order by aut_art;

• Visualizar los pedidos que se han realizado para el articulo con id 2, el listado debe mostrar
el nombre y dirección del cliente, el respectivo número de pedido y la cantidad solicitada.

select cliente.nom_cli, cliente.dir_cli, pedido.id_ped,


articuloxpedido.can_art_artped from cliente,pedido,articulo,articuloxpedido
where articulo.id_art=2;

• Visualizar los datos de las empresas fundadas entre el año 1991 y 1998.

select * from compañia where comañofun > 1991 and comañofun < 1998;

• Listar los todos datos de los automotores cuya póliza expira en octubre de 2013, este
reporte debe visualizar la placa, el modelo, la marca, número de pasajeros, cilindraje nombre
de automotor, el valor de la póliza y el valor asegurado.

select automotores.autoplaca, automotores.automodelo,


automotores.automarca, automotores.autonumpasajeros,
automotores.autocilindraje, automotores.autotipo, aseguramientos.asecosto,
aseguramientos.asevalorasegurado from aseguramientos, automotores where
asefechaexpiracion > '2013-08-31' and asefechaexpiracion < '2013-10-01';

• Visualizar los datos de los incidentes ocurridos el 30 de septiembre de 2012, con su


respectivo número de póliza, fecha de inicio de la póliza, valor asegurado y valor de la póliza.

select aseguramientos.asecodigo, aseguramientos.asefechainicio,


aseguramientos.asevalorasegurado, aseguramientos.asecosto from incidentes,
aseguramientos where incifecha='2012-09-30';

• Visualizar los datos de los incidentes que han tenido un(1) herido, este reporte debe
visualizar la placa del automotor, con los respectivos datos de la póliza como son fecha de
inicio, valor, estado y valor asegurado.

select automotores.autoplaca, aseguramientos.asefechainicio,


aseguramientos.asecosto, aseguramientos.aseestado,
aseguramientos.asevalorasegurado from incidentes, automotores,
aseguramientos where incicantheridos=1;
• Visualizar todos los datos de la póliza más costosa.

select * from aseguramientos where 1 order by asevalorasegurado desc;

• Visualizar los incidentes con el mínimo número de autos involucrados, de este incidente
visualizar el estado de la póliza y el valor asegurado.

select min(incicanautosinvolucrados), aseguramientos.aseestado,


aseguramientos.asevalorasegurado from aseguramientos,incidentes;

• Visualizar los incidentes del vehículo con placas " FLL420", este reporte debe visualizar la
fecha, el lugar, la cantidad de heridos del incidente, la fecha de inicio la de expiración de la
póliza y el valor asegurado.

select incidentes.incifecha, incidentes.incilugar,


incidentes.incicantheridos, aseguramientos.asefechaexpiracion,
aseguramientos.asevalorasegurado from aseguramientos, incidentes where
incidentes.inciplaca='FLL420';

• Visualizar los datos de la empresa con nit 899999999-5.

select * from compañia where comnit='899999999-5';

• Visualizar los datos de la póliza cuyo valor asegurado es el más costoso, este reporte
además de visualizar todos los datos de la póliza, debe presentar todos los datos del
vehículo que tiene dicha póliza.

select max(aseguramientos.asevalorasegurado), aseguramientos.asecodigo,


aseguramientos.asefechainicio, aseguramientos.asefechaexpiracion,
aseguramientos.asevalorasegurado, aseguramientos.aseestado,
aseguramientos.asecosto, automotores.autoplaca, automotores.automarca,
automotores.autotipo, automotores.automodelo, automotores.autonumpasajeros,
automotores.autocilindraje, automotores.autonumchasis from aseguramientos,
automotores where 1;

• Visualizar los datos de las pólizas de los automotores tipo 1, este reporte debe incluir placa,
marca, modelo, cilindraje del vehículo junto con la fecha de inicio, de finalización y estado de
la póliza.

select automotores.autoplaca, automotores.automarca,


automotores.autocilindraje, aseguramientos.asefechainicio,
aseguramientos.asefechaexpiracion, aseguramientos.aseestado from
automotores, aseguramientos where automotores.autotipo=1;

Das könnte Ihnen auch gefallen