Académique Documents
Professionnel Documents
Culture Documents
Marca
Pedro
Ana
Jos
Mara
Jess
Lpez
Gmez
Lezama
Contreras
Prez
M
F
M
F
M
codigo
descrip
status
Toyota
Fiat
Peugeot
1
1
2
2
3
Modelo
Vehculo
codigo cod_modelo
placa
anho
color
AND400
2010
FGH768
2005
APG299
1987
CEA291
1990
DON016
2016
codigo
descrip
cod_marca
Corolla
4Runner
Palio
500X
Land Cruiser
1
1
2
2
1
2
3
4
5
cod_persona
cod_vehiculo
fecha_alquiler
status_alq
observ
1
2
3
5
7
1
7
2
3
5
1
1
2
5
2
5
1
2
5
2
5
1
2016-01-29
2015-12-30
2016-04-25
2016-05-25
2016-05-28
2015-08-29
2015-11-03
2016-04-21
2016-05-25
2016-03-21
2016-05-25
2
2
2
1
1
2
2
2
1
2
2
Faro roto
Carro sucio
2
3
4
5
6
7
8
9
10
11
Faro roto
Carro sucio
Ejemplo 1
Consultar los modelos de vehculos registrados con su
marca
SELECT modelo.codigo, modelo.descrip as modelo,
marca.descrip as marca
FROM modelo, marca
WHERE modelo.cod_marca = marca.codigo
Resultado
codigo
modelo
marca
Corolla
4Runner
Palio
500X
Land Cruiser
Toyota
Toyota
Fiat
Fiat
Toyota
2
3
4
5
Ejemplo 2
Consultar los vehculos registrados con su modelo
SELECT vehiculo.codigo, modelo.descrip as modelo,
placa, anho
FROM vehiculo, modelo
WHERE vehiculo.cod_modelo = modelo.codigo
Resultado
codigo
modelo
placa
anho
Corolla
AND400
2010
4Runner
FGH768
2005
Palio
APG299
1987
4Runner
CEA291
1990
Corolla
DON016
2016
Ejemplo 3
Consultar los vehculos registrados con su modelo,
utilizando alias para tablas
SELECT v.codigo, m.descrip as modelo,
placa, anho
FROM vehiculo v, modelo m
WHERE v.cod_modelo = m.codigo
Resultado
codigo
modelo
placa
anho
Corolla
AND400
2010
4Runner
FGH768
2005
Palio
APG299
1987
4Runner
CEA291
1990
Corolla
DON016
2016
Ejemplo 4
Consultar los vehculos registrados con su modelo,
marca, utilizando alias para tablas
SELECT v.codigo, ma.descrip as marca, mo.descrip as
modelo, placa, anho
FROM vehiculo v, modelo mo, marca ma
WHERE v.cod_modelo = mo.codigo and
mo.cod_marca = ma.codigo
Resultado
codigo
marca
modelo
placa
anho
Toyota
Corolla
AND400
2010
Toyota
4Runner
FGH768
2005
Fiat
Palio
APG299
1987
Toyota
4Runner
CEA291
1990
Toyota
Corolla
DON016
2016
Ejemplo 5
Consultar los vehculos registrados con su modelo,
marca, utilizando alias para tablas y la opcin INNER
JOIN
SELECT v.codigo, ma.descrip as marca, mo.descrip as modelo, placa,
anho
FROM vehiculo v
INNER JOIN modelo mo ON (v.cod_modelo = mo.codigo)
INNER JOIN marca ma ON (mo.cod_marca = ma.codigo)
Ejemplo 6
Consultar los vehculos alquilados en el mes de mayo del
ao 2016. El reporte debe indicar marca, modelo, placa,
nombre y apellido del cliente, fecha y observaciones de
alquiler.
SELECT ma.descrip as marca, mo.descrip as modelo, placa,
p.nombre, p.apellido, a.fecha_alquiler, a.observ
FROM alquiler a
INNER JOIN persona p ON (a.cod_persona = p.codigo)
INNER JOIN vehiculo v ON (a.cod_vehiculo = v.codigo)
INNER JOIN modelo mo ON (v.cod_modelo = mo.codigo)
INNER JOIN marca ma ON (mo.cod_marca = ma.codigo)
WHERE a.fecha_alquiler BETWEEN 2016-05-01 and 2016-05-31
Ejemplo 7
Consultar la cantidad de alquileres registrados por persona
SELECT p.nombre || ' ' || p.apellido as persona, count (a.*) as cantidad
FROM alquiler a
INNER JOIN persona p ON (a.cod_persona = p.codigo)
GROUP BY p.nombre || ' ' || p.apellido
Ejemplo 8
Consultar la cantidad de alquileres registrados por vehculo
SELECT v.placa, count (a.*)
FROM alquiler a
INNER JOIN vehiculo v ON (a.cod_vehiculo = v.codigo)
GROUP BY v.placa
Ejemplo 9
Consultar la cantidad de alquileres registrados por vehculo
mostrando aquellos modelos que tengan alquileres por
debajo de 5
SELECT mo.descrip as modelo, count (a.*) as cantidad
FROM alquiler a
INNER JOIN vehiculo v ON (a.cod_vehiculo = v.codigo)
INNER JOIN modelo mo ON (v.cod_modelo = mo.codigo)
GROUP BY mo.descrip
HAVING count (a.*) < 5
Ejemplo 10
Consultar los modelos de vehculos para los cuales, no se
han registrado alquileres
SELECT mo.descrip as modelo, v.placa, v.anho
FROM vehiculo v
INNER JOIN modelo mo ON (v.cod_modelo = mo.codigo)
WHERE v.codigo
NOT IN (
SELECT distinct(a.cod_vehiculo)
FROM alquiler a
)
Mxima