Está en la página 1de 11

CREATE DATABASE LaboratorioSQL;

CREATE TABLE PROFESOR (

DOC_PROF VARCHAR(11) primary KEY NOT NULL,

NOM_PROF VARCHAR(30),

APE_PROFESOR VARCHAR(30),

CATE_PROF INT,
SAL_PROF INT,
sal_prof INT
)

CREATE TABLE CURSO (

COD_CURSO INT primary KEY auto_increment,

NOM_CURS VARCHAR(100),

HORAS_CUR int,

VALOR_CUR int)

CREATE TABLE Estudiante (

doc_est VARCHAR(11) PRIMARY KEY,

nom_est VARCHAR(30),

ape_est VARCHAR(30),

edad_est INT
)

CREATE TABLE Estudiantexcurso (

cod_cur_estcur INT(11) ,

doc_est_estcur VARCHAR (30),

fec_ini_estcur DATE,

FOREIGN KEY (cod_cur_estcur) REFERENCES CURSO (COD_CURSO),

FOREIGN KEY (doc_est_estcur) REFERENCES Estudiante (doc_est)

CREATE TABLE Cliente (

id_cli VARCHAR(11) PRIMARY KEY,

nom_cli VARCHAR(30),

ape_cli VARCHAR(30),

dir_cli VARCHAR (100),


dep_cli VARCHAR (20),

es_cum_cli VARCHAR(10)

CREATE TABLE Articulo (

id_art INT PRIMARY KEY auto_increment,

tit_art VARCHAR(100),

ut_art VARCHAR(100),

edi_art VARCHAR(100),

prec_art INT

CREATE TABLE Pedido (


id_ped INT PRIMARY KEY auto_increment,

id_cli_ped VARCHAR(11),

fec_ped DATE,

val_ped INT,

FOREIGN KEY (id_cli_ped) REFERENCES Cliente (id_cli)

CREATE TABLE Articuloxpedido (

id_ped_artped INT,

id_art_artped INT,

can_art_artped INT,

val_ven_art_artped INT,

FOREIGN KEY (id_ped_artped) REFERENCES Pedido (id_ped),

FOREIGN KEY (id_art_artped) REFERENCES Articulo (id_art)

CREATE TABLE Compania (

comnit VARCHAR(11) PRIMARY KEY,

comnombre VARCHAR(30),

coma�ofun INT,

comreplegal VARCHAR(100)
)

CREATE TABLE TiposAutomotores (

auttipo INT PRIMARY KEY,


autnombre VARCHAR 40
)
** AJUSTE A TABLA NUEVO CAMPO: ALTER TABLE TiposAutomotores ADD COLUMN autnombre
VARCHAR(40)

CREATE TABLE Automotores (

autoplaca VARCHAR(6) PRIMARY KEY,

Automarca VARCHAR(30),

Autotipo INT,
Automodelo INT,

Autonumpasajeros INT,

Autocilindraje INT,

Autonumchasis VARCHAR(20),

FOREIGN KEY (Autotipo) REFERENCES TiposAutomotores (auttipo)

CREATE TABLE Aseguramientos (


asecodigo INT PRIMARY KEY auto_increment,

Asefechainicio DATE,
asefechaexpiracion DATE,

asevalorasegurado INT,
Aseestado VARCHAR(250),

Asecosto INT,

Aseplaca VARCHAR(20),

FOREIGN KEY (Aseplaca) REFERENCES Automotores (autoplaca)

CREATE TABLE Incidentes (

incicodigo INT PRIMARY KEY auto_increment,

incifecha DATE,
inciplaca VARCHAR(6),
incilugar VARCHAR(40),

incicantheridos INT,

incicanfatalidades INT,
incicanautosinvolucrados INT,

FOREIGN KEY (inciplaca) REFERENCES Automotores (autoplaca)

)
-----------------------------------------------------------------------------------
-------------------------------
2 . PARTE (INSERTS)

INSERT INTO PROFESOR VALUES ('63502720','Martha','Rojas',2,690000)

INSERT INTO PROFESOR VALUES ('91216904','Carlos','P�rez',3,950000)

INSERT INTO PROFESOR VALUES ('13826789','Maritza','Angarita',1,550000)

INSERT INTO PROFESOR VALUES ('1098765789','Alejandra','Torres',4,1100000)

INSERT INTO CURSO VALUES (149842,'Fundamentos de Bases de datos',40,500000)

INSERT INTO CURSO VALUES (250067,'Fundamentos de SQL',20,700000)

INSERT INTO CURSO VALUES (289011,'Manejo de Mysql',45,550000)

INSERT INTO CURSO VALUES (345671,'Fundamentals of Oracle',60,3000000)

INSERT INTO Estudiante VALUES ('63502720','Mar�a','Perez',23)

INSERT INTO Estudiante VALUES ('91245678','Carlos Jos�','Lopez',25)

INSERT INTO Estudiante VALUES ('1098098097','Jonatan','Ardila',17)

INSERT INTO Estudiante VALUES ('1098765678','Carlos','Martinez',19)

INSERT INTO Estudiantexcurso VALUES (289011,'1098765678','2011-02-01')

INSERT INTO Estudiantexcurso VALUES (250067,'63502720','2011-03-01')

INSERT INTO Estudiantexcurso VALUES (289011,'1098098097','2011-02-01')


INSERT INTO Estudiantexcurso VALUES (345671,'63502720','2011-04-01')

INSERT INTO Cliente VALUES ('63502718','Maritza','Rojas','Calle 34 No.14


-45','Santander','Abril')

INSERT INTO Cliente VALUES ('13890234','Roger','Ariza','Cra 30 No.13


-45','Antioquia','Junio')

INSERT INTO Cliente VALUES ('77191956','Juan Carlos','Arenas','Diagonal 23 No.12 -


34 apto 101','Valle','Marzo')

INSERT INTO Cliente VALUES ('1098765789','Catalina','Zapata','Av el LibertadorNo.


30 - 14','Cauca','Marzo')

INSERT INTO Articulo VALUES (1,'Redes cisco','Ernesto Arigasello','Alfaomega


-Rama',60000)

INSERT INTO Articulo VALUES (2,'Facebook y twitter paraadultos','Veloso


Claudio','Alfaomega',52000)

INSERT INTO Articulo VALUES (3,'Creaci�n de un portalcon php y mysql','Jacobo


Pav�nPuertas','Alfaomega -Rama',40000)

INSERT INTO Articulo VALUES (4,'Administraci�n desistemas operativos','Julio


G�mezL�pez','Alfaomega -Rama',55000)

INSERT INTO Pedido VALUES (1,'63502718','2012-02-25',120000)

INSERT INTO Pedido VALUES (2,'77191956','2012-04-30',55000)


INSERT INTO Pedido VALUES (3,'63502718','2012-12-10',260000)
INSERT INTO Pedido VALUES (4,'1098765789','2012-02-25',1800000)

INSERT INTO Articuloxpedido VALUES (1,3,5,40000)

INSERT INTO Articuloxpedido VALUES (1,4,12,55000)

INSERT INTO Articuloxpedido VALUES (2,1,5,65000)

NSERT INTO Articuloxpedido VALUES (3,2,10,55000)

INSERT INTO Articuloxpedido VALUES (3,3,12,45000)

INSERT INTO Articuloxpedido VALUES (4,1,20,65000)

INSERT INTO Compania VALUES ('800890890-2','Seguros Atlantida',1998,'Carlos L�pez')

INSERT INTO Compania VALUES ('899999999-1','Aseguradora Rojas',1991,'Luis Fernando


Rojas')

INSERT INTO Compania VALUES ('899999999-5','Seguros del Estadio',2001,'Maria


Margarita P�rez')

INSERT INTO TiposAutomotores VALUES (1,'Autom�viles')

INSERT INTO TiposAutomotores VALUES (2,'Camperos')

INSERT INTO TiposAutomotores VALUES (3,'Camiones')

INSERT INTO Automotores VALUES ('FLL420','chevrolet


corsa',1,2003,5,1400,'wywzzz167kk009d25')

INSERT INTO Automotores VALUES ('DKZ820','renault


stepway',1,2008,5,1600,'wywwzz157kk009d45')

INSERT INTO Automotores VALUES ('KJQ920','kia


sportage',2,2009,7,2000,'wywzzz157kk009d25')

INSERT INTO Aseguramientos VALUES (1,'2012-09-30','2013-09-


30',30000000,'Vigente',500000,'FLL420')

INSERT INTO Aseguramientos VALUES (2,'2012-09-27','2013-09-


27',35000000,'Vigente',600000,'DKZ820')

INSERT INTO Aseguramientos VALUES (3,'2011-09-28','2012-09-


28',50000000,'Vencido',800000,'KJQ920')

INSERT INTO Incidentes VALUES (1,'2012-09-30','DKZ820','Bucaramanga',0,0,2)

INSERT INTO Incidentes VALUES (2,'2012-09-27','FLL420','Gir�n',1,0,1)

INSERT INTO Incidentes VALUES (3,'2012-09-28','FLL420','Bucaramanga',1,0,2)

-----------------------------------------------------------------------------------
--------------------------
3- PARTE (CONSULTAS)

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


SELECT * FROM PROFESOR ORDER BY CATE_PROF DESC

2 - Muestre los cursos cuyo valor sea mayor a $500.000.


SELECT * FROM CURSO WHERE VALOR_CUR > 500000

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


SELECT * FROM ESTUDIANTE WHERE EDAD_EST >22

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


SELECT NOM_EST, MAX(EDAD_EST) FROM ESTUDIANTE

5 - Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.
SELECT AVG(VALOR_CUR) FROM CURSO WHERE HORAS_CUR >40

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


SELECT AVG(SAL_PROF) FROM PROFESOR WHERE CATE_PROF = 1

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


el valor.
SELECT * FROM CURSO ORDER BY VALOR_CUR ASC

8 - Muestre el nombre del profesor con menor sueldo.


SELECT CONCAT(' ', NOM_PROF,' ',APE_PROFESOR) AS NOMBRE, MIN(SAL_PROF) FROM
PROFESOR

9 - 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 CONCAT(' ', NOM_EST,' ',APE_EST) AS NOMBRE ,COD_CUR_ESTCUR AS


CODIGO,NOM_CURS, HORAS_CUR FROM ESTUDIANTE E

JOIN ESTUDIANTEXCURSO EC ON EC.DOC_EST_ESTCUR = E.DOC_EST

JOIN CURSO C ON C.COD_CURSO = EC.COD_CUR_ESTCUR

WHERE FEC_INI_ESTCUR = '2011-02-01'

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


SELECT * FROM PROFESOR WHERE SAL_PROF BETWEEN (500000) AND (700000)

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


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

SELECT
CONCAT(' ', CL.NOM_CLI,' ',CL.APE_CLI) AS NOMBRE,
CL.DIR_CLI AS DIRECCION
FROM CLIENTE CL

JOIN PEDIDO P ON P.ID_CLI_PED = CL.ID_CLI

WHERE P.FEC_PED = '2012-02-25'

12 - Listar todos los pedidos realizados incluyendo el nombre del articulo.

SELECT * FROM PEDIDO P

JOIN ARTICULOXPEDIDO AP ON AP.ID_PED_ARTPED = P.ID_PED

JOIN ARTICULO A ON AP.ID_ART_ARTPED = ID_ART

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

SELECT * FROM CLIENTE WHERE MES_CUM_CLI = 'MARZO'

14 - 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 CONCAT(' ',CL.NOM_CLI,CL.APE_CLI) AS NOMBRE,


CL.DIR_CLI, A.TIT_ART AS PRODUCTO,
A.PREC_ART FROM PEDIDO P

JOIN ARTICULOXPEDIDO AP ON AP.ID_PED_ARTPED = P.ID_PED

JOIN ARTICULO A ON AP.ID_ART_ARTPED = ID_ART

JOIN CLIENTE CL ON P.ID_CLI_PED = CL.ID_CLI

WHERE P.ID_PED = 1

15 - Visualizar el nombre del cliente, la fecha y el valor del pedido m�s costoso.

SELECT CONCAT(' ',CL.NOM_CLI, CL.APE_CLI) AS NOMBRE,


MAX(P.VAL_PED) AS VALOR,
P.FEC_PED AS FECHA FROM PEDIDO P

JOIN ARTICULOXPEDIDO AP ON AP.ID_PED_ARTPED = P.ID_PED

JOIN ARTICULO A ON AP.ID_ART_ARTPED = ID_ART

JOIN CLIENTE CL ON P.ID_CLI_PED = CL.ID_CLI

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


y cantidad pedida).

SELECT COUNT(EDI_ART) AS NUMERO_ARTICULOS,


EDI_ART AS EDITORIAL
FROM ARTICULO

ROUP BY EDI_ART

17 - Visualizar todos los clientes organizados por apellido


SELECT * FROM CLIENTE ORDER BY 3 ASC

18 - Visualizar todos los art�culos organizados por autor

SELECT * FROM ARTICULO ORDER BY 3 ASC

19 - 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 CONCAT(' ',CL.NOM_CLI,CL.APE_CLI) AS NOMBRE,

CL.DIR_CLI,

A.TIT_ART AS PRODUCTO,

A.PREC_ART,

P.ID_PED AS PEDID

FROM PEDIDO P
JOIN ARTICULOXPEDIDO AP ON AP.ID_PED_ARTPED = P.ID_PED

JOIN ARTICULO A ON AP.ID_ART_ARTPED = ID_ART

JOIN CLIENTE CL ON P.ID_CLI_PED = CL.ID_CLI

WHERE A.ID_ART = 2

20 - Visualizar los datos de las empresas fundadas entre el a�o 1991 y 1998.
SELECT * FROM COMPANIA WHERE COMA�OFUN BETWEEN 1991 AND 1998

21 - 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 A.AUTOPLACA,
A.AUTOMODELO,
A.AUTOMARCA,
A.AUTONUMPASAJEROS,
AUTOCILINDRAJE,
T.AUTNOMBRE,
ASE.ASECOSTO,
ASE.ASEVALORASEGURADO
FROM AUTOMOTORES A
JOIN ASEGURAMIENTOS ASE ON ASE.ASEPLACA = A.AUTOPLACA

JOIN TIPOSAUTOMOTORES T ON A.AUTOTIPO = T.AUTTIPO

WHERE ASE.ASEFECHAEXPIRACION BETWEEN '2013-10-01' AND '2013-10-31'

22 - 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 ASE.ASECODIGO,
ASE.ASEFECHAINICIO,
ASE.ASEVALORASEGURADO,
ASE.ASECOSTO FROM INCIDENTES I

JOIN ASEGURAMIENTOS ASE ON ASE.ASEPLACA = I.INCIPLACA

WHERE I.INCIFECHA = '2012-09-30'

23 - 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 I.INCIPLACA,
ASE.ASECODIGO,
ASE.ASEFECHAINICIO,
ASE.ASEVALORASEGURADO,
ASE.ASECOSTO,
ASE.ASEESTADO
FROM INCIDENTES I

JOIN ASEGURAMIENTOS ASE ON ASE.ASEPLACA = I.INCIPLACA

WHERE I.incicantheridos = 1

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


SELECT MAX(Asecosto) FROM ASEGURAMIENTOS

25 - 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),
ASE.Aseestado,
ASE.asevalorasegurado
FROM INCIDENTES I

JOIN ASEGURAMIENTOS ASE ON ASE.ASEPLACA = I.INCIPLACA

26 - 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 I.incifecha,
I.incilugar,
I.incicantheridos,
ASE.Asefechainicio,
ASE.asevalorasegurado FROM INCIDENTES I

JOIN ASEGURAMIENTOS ASE ON ASE.ASEPLACA = I.INCIPLACA

WHERE I.inciplaca = 'FLL420'

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


SELECT * FROM COMPANIA WHERE comnit = '899999999-5'

28 - 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 * FROM ASEGURAMIENTOS A

JOIN AUTOMOTORES AU ON A.Aseplaca = AU.autoplaca


WHERE A.Asecosto = (SELECT MAX(Asecosto) FROM ASEGURAMIENTOS)

29 - 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
AU.autoplaca,
AU.Automarca,
AU.Automodelo,
AU.Autocilindraje,
A.Asefechainicio,
A.asefechaexpiracion,
A.Aseestado
FROM ASEGURAMIENTOS A

JOIN AUTOMOTORES AU ON A.Aseplaca = AU.autoplaca

WHERE AU.Autotipo = 1

También podría gustarte