Está en la página 1de 8

LABORATORIO 12.

Aplicando Sentencias SQL para la definici�n y manipulaci�n de la Base de Datos.

Ejercicios:

Utilizando instrucciones SQL, realice las siguientes actividades:

1. Cree una base de datos llamada laboratorioSQL.

create database laboratoriosSQL;

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


siguientes tablas con los respectivos campos y tipos de datos.

use laboratoriosSQL;

create table Profesor(


docProf varchar(11) not null,
nomProf varchar(30) not null,
apeProf varchar(30) not null,
cateProf int not null,
salProf int not null,
primary key(docProf),
unique(docProf)
);

create table Curso(


codCurs int not null auto_increment,
nomCurs varchar(100) not null,
horasCurs int not null,
valorCurs int not null,
primary key (codCurs)
)auto_increment=1;

create table Estudiante(


docEst int (11) not null,
nomEst varchar(30) not null,
apeEst varchar(30) not null,
edadEst int not null,
primary key (docEst),
unique (docEst)
);

create table EstudiantexCurso(


codCursEstCurs int not null,
docEst_EstCurs int(30) not null,
fecIniEstCurs date not null,
foreign key (codCursEstCurs) references Curso (codCurs),
foreign key (docEst_EstCurs) references Estudiante (docEst)
);

create table Cliente(


idCli varchar(11) not null,
nomCli varchar(30) not null,
apeCli varchar(30) not null,
dirCli varchar(100) not null,
depCli varchar(20) not null,
mesCumCli varchar(10) not null,
primary key (idCli)
);

create table Articulo(


idArt int not null auto_increment,
titArt varchar(100) not null,
autArt varchar(100) not null,
ediArt varchar(300) not null,
precArt int not null,
primary key (idArt)
)auto_increment=1;

create table Pedido(


idPed int not null auto_increment,
idCliPed varchar(11) not null,
fecPed date not null,
valPed int not null,
primary key (idPed),
foreign key (idCliPed) references Cliente (idCli)
)auto_increment=1;

create table ArticuloxPedido(


idPedArtped int not null,
idArtArtped int not null,
canArtArtped int not null,
valvenArtArtped int not null,
foreign key(idPedArtped) references Pedido (idPed),
foreign key(idArtArtped) references Articulo (idArt)
);

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)
);

create table TiposAutomotores(


auttipo int not null,
primary key(auttipo)
);

alter table TiposAutomotores add autnombre varchar(20) not null


after auttipo;

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) not null,
primary key (autoplaca),
foreign key (Autotipo) references TiposAutomotores (auttipo)
);

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 (20) not null,
primary key (asecodigo),
foreign key (Aseplaca) references Automotores (autoplaca)
)auto_increment=1;

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;

3. Inserte los siguientes registros seg�n las tablas que se presentan a


continuaci�n:

Insert into Profesor


(docProf,nomProf,apeProf,cateProf,salProf)
values('63502720','Martha','Rojas',2,690000),
('91216904','Carlos','Perez',3,950000),
('13826789','Maritza','Angarita',1,550000),
('1098765789','Alejandra','Torres',4,1100000);

select * from Profesor;

Insert into Curso


(codCurs,nomCurs,horasCurs,valorCurs)
values(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);

select * from Curso;

Insert into Estudiante


(docEst,nomEst,apeEst,edadEst)
values(63502720,'Maria','Perez',23),
(91245678,'Carlos Jos�','Lopez',25),
(1098098097,'Jonatan','Ardila',17),
(1098765678,'Carlos','Martinez',19);

select * from Estudiante;


Insert into EstudiantexCurso
(codCursEstCurs,docEst_EstCurs,fecIniEstCurs)
values(289011,1098765678,'2011-01-02'),
(250067,63502720,'2011-01-03'),
(289011,1098098097,'2011-01-02'),
(345671,63502720,'2011-01-04');

select * from EstudiantexCurso;

Insert into Cliente


(idCli,nomCli,apeCli,dirCli,depCli,mesCumCli)
values('63502718','Maritza','Rojas','Calle 34 No. 14-45','Santander','Abril'),
('13890234','Roger','Ariza','Cra 30 No. 13-45','Antioquia','Junio'),
('77191956','Juan Carlos','Arenas','Diagonal 23 No. 12-34 Apto
101','Valle','Marzo'),
('1098765789','Catalina','Zapata','Av el Libertador No. 30-14','Cauca','Marzo');

select * from Cliente;

Insert into Articulo


(titArt,autArt,ediArt,precArt)
values('Redes cisco','Ernesto Arigasello','AlfaomegaRama',60000),
('Facebook y twiter para adultos','Veloso Claudio','Alfaomega',52000),
('Creaci�n de un portal con php y mysql','Jacobo Pav�n
Puertas','AlfaomegaRama',40000),
('Administraci�n de sistemas operativos','Julio G�mez
L�pez','AlfaomegaRama',55000);

select * from Articulo;

Insert into Pedido


(idCliPed,fecPed,valPed)
values('63502718','2012-02-25',120000),
('77191956','2012-04-30',55000),
('63502718','2011-12-10',260000),
('1098765789','2012-02-25',1800000);

select * from Pedido;

Insert into ArticuloxPedido


(idPedArtped,idArtArtped,canArtArtped,valvenArtArtped)
values(1,3,5,40000),
(1,4,12,55000),
(2,1,5,65000),
(3,2,10,55000),
(3,3,12,45000),
(4,1,20,65000);

select * from ArticuloxPedido;

Insert into Compa�ia


(comnit,Comnombre,coma�ofun,comreplegal)
values('800890890-2','Seguros Atlantida',1998,'Carlos L�pez'),
('899999999-1','Aseguradora Rojas',1991,'luis Fernando Rojas'),
('899999999-5','Seguros del Estado',2001,'Maria Margarita P�rez');

select * from Compa�ia;

alter table TiposAutomotores add autnombre varchar(30) " se agrego esta columna
a la tabla TiposAutopmotores, porque al inicio en los ejercicios no la incluia,
pero al momento de registrar o insertar datos en la tabla nos estan pidiento que
ingresemos ese dato"

Insert into TiposAutomotores


(auttipo,autnombre)
values(1,'Autom�viles'),
(2,'Camperos'),
(3,'Camiones');

select * from TiposAutomotores;

Insert into Automotores


(autoplaca,Automarca,Autotipo,Automodelo,Autonumpasajeros,Autocilindraje,Autonumcha
sis)
values('FLL420','Chevrolet Corsa',1,2003,5,1400,'wywzzz167kk009d25'),
('DKZ820','Renault Stepway',1,2008,5,1600,'wywwzz157kk009d45'),
('KJQ920','Kia Sportage',2,2009,7,2000,'wywzzz157kk009d25');

select * from Automotores;

Insert into Aseguramientos


(Asefechainicio,asefechaexpiracion,asevalorasegurado,Aseestado,Asecosto,Aseplaca)
values('2012-09-30','2013-09-30',30000000,'Vigente',500000,'FLL420'),
('2012-09-27','2013-09-27',35000000,'Vigente',600000,'DKZ820'),
('2011-09-28','2012-09-28',50000000,'Vencido',800000,'KJQ920');

select * from Aseguramientos;

Insert into Incidentes


(incifecha,inciplaca,incilugar,incicantheridos,incicanfatalidades,incicanautosinvol
ucrados)
values('2012-09-30','DKZ820','Bucaranga',0,0,2),
('2012-09-27','FLL420','Gir�n',1,0,1),
('2011-09-28','FLL420','Bucaramanga',1,0,2);

select * from Incidentes;

4. Realice las siguientes consultas:

Enter password: ********


show databases;

use laboratoriossql;

� Muestre los salarios de los profesores ordenados por categor�a.

select salProf, cateProf


from Profesor
order by cateProf;

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

select * from Curso


where valorCurs > 500000;

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


select count (*) from Estudiante
where edadEst > 22;

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

select nomEst, edadEst from Estudiante


where edadEst in(select min(edadEst) from Estudiante);

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

select avg(valorCurs) from Curso where horasCurs>40;

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

select avg(salProf) from Profesor where cateProf=1;

� Muestre todos los campos de la tabla curso en orden ascendente seg�n


el valor.

select * from Curso order by valorCurs;

� Muestre el nombre del profesor con menor sueldo.

select nomProf from Profesor


where salProf in (select min(salProf) 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 docEst,nomEst,nomCurs,horasCurs,valorCurs
from Estudiante, Curso, EstudiantexCurso
where codCurs= codCursEstCurs and docEst= docEst_EstCurs
and fecIniEstCurs=20110102;

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

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

� Visualizar el nombre, apellido y direcci�n de todos aquellos clientes


que hayan realizado un pedido el d�a 25 /02/2012.

select nomCli,apeCli,dirCli from Cliente, Pedido


where fecPed= 20120225;

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

select idPed, idCliPed, fecPed, titArt


from pedido, ArticuloxPedido, Articulo
where idArt= idArtArtped;

� Visualizar los clientes que cumplen a�os en marzo.

select nomCli from Cliente where mesCumCli='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 idPed,valPed, dirCli, nomCli from Pedido, Cliente


where idCli= idCliPed and idPed=1;
� Visualizar el nombre del cliente, la fecha y el valor del pedido m�s costoso.

select nomCli, fecPed,valPed from Cliente, Pedido


where idCli= idCliPed and valPed in (select max(valPed) from Pedido);

� Mostrar cuantos art�culos se tienen de cada editorial.

select * from Articulo;

� Mostrar los pedidos con los respectivos art�culos(c�digo, nombre, valor


y cantidad pedida).

select idped, titArt, valPed, canArtArtped from Articulo, Pedido, ArticuloxPedido


where idArt= idArtArtped and idPed= idPedArtped;

� Visualizar todos los clientes organizados por apellido.

select nomCli, apeCli from Cliente order by apeCli;

� Visualizar todos los art�culos organizados por autor.

select * from Articulo order by autArt;

� 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 nomCli,dirCli,idPed, canArtArtped from Cliente, Pedido, ArticuloxPedido


where idPed= idPedArtped and idCliPed= idCli and idArtArtped=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 todos los 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 autoplaca, Automodelo, Automarca, Autonumpasajeros, Autocilindraje,


autnombre, Asecosto, asevalorasegurado
from Automotores, Aseguramientos, TiposAutomotores
where autoplaca= Aseplaca and auttipo= Autotipo and asefechaexpiracion<=20131031
and asefechaexpiracion>=20131001;

� 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 incifecha,asecodigo, Asefechainicio, asevalorasegurado, Asecosto


from Incidentes, Aseguramientos
where inciplaca= Aseplaca and incifecha= 20120930;

� 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 incicantheridos,autoplaca,Asefechainicio, asevalorasegurado, Aseestado,


asevalorasegurado
from Incidentes, Aseguramientos, Automotores
where inciplaca=Aseplaca and autoplaca= inciplaca and incicantheridos=1;

� Visualizar todos los datos de la p�liza m�s costosa.

select * from Aseguramientos


where Asecosto in(select max(Asecosto) from Aseguramientos);

� 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 incicanautosinvolucrados, inciplaca, Aseestado, asevalorasegurado


from Incidentes, Aseguramientos
where inciplaca=Aseplaca and incicanautosinvolucrados in(select
min(incicanautosinvolucrados) from 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 inciplaca, incifecha, incilugar, incicantheridos, Asefechainicio,


asefechaexpiracion, asevalorasegurado
from Incidentes, Aseguramientos
where inciplaca=Aseplaca and 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,

select * from Aseguramientos, Automotores


where Aseplaca=autoplaca and asevalorasegurado in(select max(asevalorasegurado)
from Aseguramientos);

debe presentar todos los datos del veh�culo que tiene dicha p�liza.

� 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
auttipo,autoplaca,Automarca,Automodelo,Autocilindraje,Asefechainicio,asefechaexpira
cion,Aseestado
from Automotores, Aseguramientos, TiposAutomotores
where autoplaca=Aseplaca and Autotipo= auttipo and auttipo=1;

También podría gustarte