Lenguaje SQL

Sintaxis Oracle
1- Seleccionar las ciudades de más de 1 millón de habitantes. SELECT l.nombre FROM lugar l, tipo_lugar t WHERE l.tipo_lugar = t.id_tipo_lugar AND t.nombre = 'Ciudad' AND l.habitantes > 1000000; 2- Mostrar el nombre y el clima de los lugares situados en América del Norte ordenados por número de habitantes, de menor a mayor. SELECT l.nombre, l.clima, l.habitantes FROM lugar l, pais p WHERE l.id_pais = p.id_pais AND p.continente = 'América del Norte' ORDER BY NVL(l.habitantes,0) ; 3- Seleccionar el nombre y el continente de los paises de Asia y Europa. SELECT l.nombre, p.continente, l.clima FROM lugar l, pais p WHERE l.id_pais = p.id_pais AND p.continente IN ('Asia', 'Europa'); 4- Seleccionar los lugares que tengan el texto 'capital' en su descripción, sin clima informado y que estén en un continente que no sea Europa. SELECT l.nombre AS "Lugar", p.nombre AS "País" FROM lugar l, pais p WHERE l.id_pais = p.id_pais AND p.continente <> 'Europa' AND l.descripcion LIKE '%capital%' AND l.clima IS NULL;

fecha. l.nombre FROM lugar l.id_tipo_lugar AND l. SELECT DISTINCT v. 6. 7.id_lugar AND TO_CHAR(vi.nombre = 'Roma'. viaje vi.id_lugar = l.Mostrar un listado de lugares de los paises de Asia con más de 50 millones de habitantes.id_pais = p.id_lugar AND l.id_pais = p. pais p WHERE l. SELECT l.id_viajero AND vi.Listar el nombre y apellidos de los viajeros.nombre. SELECT v. lugar l WHERE v. además del lugar de destino de todos los viajes realizados en 2006.id_viajero AND vi.continente = 'Europa'.nombre AS "Lugar" FROM lugar l.id_pais AND p.'Continental') AND p.id_viajero = vi.apellidos. lugar l WHERE v.clima IN ('Mediterráneo'.Mostrar las ciudades de Europa con clima Mediterraneo o Continental.5.nombre = 'Ciudad' AND l.tipo_lugar = t. v. v.id_pais AND t.id_viajero = vi. 8. SELECT l.num_habitantes > 500000000.Mostrar todos los diferentes viajeros que hayan viajado a Roma. . tipo_lugar t.nombre. pais p WHERE l. viaje vi.'YYYY') = '2006' ORDER by vi.nombre FROM viajero v.fecha.apellidos FROM viajero v.id_lugar = l.

numero_dias BETWEEN t. tipo_estancia t WHERE v.perfil_viajero.id_viajero AND vi.nombre FROM pais p.presupuesto_diario FROM viajero v.habitantes > 1000000 AND vi.id_lugar AND l.id_lugar AND l. 11.nombre = 'Puente' ORDER BY v.id_viajero = vi.id_viajero = vi. SELECT DISTINCT v. 12.nombre IS NULL.Mostrar los diferentes perfiles de viajero y gasto de todos los viajes considerados de puente.nombre. SELECT DISTINCT v.id_pais(+) = l.perfil_viajero FROM viajero v.id_viajero AND vi. 10. 13.dia_desde AND t.id_lugar = l.id_pais = l. SELECT DISTINCT v.Mostrar los lugares que no tienen pais asignado.id_pais(+) AND l.presupuesto_diario. viaje vi. vi. . SELECT p.apellidos FROM viajero v.perfil_viajero. lugar l WHERE v. lugar l WHERE p.id_pais AND p.Mostrar los paises que no tienen ningún lugar dado de alta.nombre IS NULL. viaje vi.Hacer un listado de los diferentes perfiles de viajero que tengan un presupuesto inferior a 25 € en sus viajes a lugares con más de 1 millón de habitantes.dia_hasta AND t.id_viajero = vi. lugar l WHERE v. v.9.id_lugar = l.valoracion >= 5.nombre = 'Londres' AND vi.id_viajero AND vi.nombre FROM pais p.presupuesto_diario < 25. lugar l WHERE p.Listar los diferentes viajeros que hayan aprobado un viaje a Londres. SELECT l. vi. viaje vi.

id_viajero AND vi. v.apellidos FROM viajero v.id_viajero IS NULL.id_lugar IS NULL.id_lugar AND l. 17. SELECT DISTINCT v.habitantes > 5000000. .id_tipo_lugar AND l. 'fmMONTH') = 'JULIO'.fecha.Mostrar los perfiles de viajero que hayan estado en América en el mes de Julio.perfil_viajero FROM viajero v. pais p WHERE v.id_lugar(+) AND vi.id_viajero AND vi. lugar l.id_viajero(+) AND vi. tipo_lugar t WHERE v.id_viajero = vi.nombre. viaje vi. SELECT DISTINCT v. viaje vi WHERE v.apellidos FROM viajero v. 16.nombre FROM lugar l.nombre.id_lugar AND l.id_lugar = vi. viaje vi. SELECT DISTINCT v. lugar l.Listar los lugares a los que no se ha realizado ningún viaje.id_viajero = vi. 15.id_lugar = l.id_pais = p.tipo_lugar = t. SELECT l. v. viaje vi WHERE l.id_viajero = vi.id_pais AND p.Hacer un listado con los viajeros que no han realizado ningún viaje.Mostrar los distintos viajeros que han realizado un viaje a una ciudad de más de 5 millones de habitantes.continente LIKE 'América%' AND TO_CHAR(vi.14.id_lugar = l.

continente = 'Oceanía' AND vi.'DD/MM/YYYY').Mostrar los diferentes viajeros que se hayan desplazado a Oceanía entre junio de 2005 y junio de 2006.nombre IN ('Playa'.'DD/MM/YYYY') AND TO_DATE('30/06/2006'.Hacer un listado con todos los lugares de playa o montaña que hayan sido aprobados por algún viajero de clase turista o low cost. 20.id_pais AND p.id_viajero = vi.valoracion >= 5.id_pais = p.nombre FROM viajero v. viaje vi.tipo_lugar = t. viaje vi.continente IN ('Asia'. 19.fecha. tipo_lugar t WHERE v.apellidos FROM viajero v.id_lugar = l.id_viajero AND vi.nombre.18. .'Continental').perfil_viajero IN ('LOW_COST'. 'Montaña') AND v.Mostrar los nombres de los viajeros que hayan viajado a una ciuad de clima Templado o Continental que esté situada en Asia o Europa. SELECT v. v. lugar l.'CLASE_TURISTA') AND vi.id_viajero = vi.id_lugar = l.nombre. vi. v.id_pais AND p. pais p WHERE v.clima IN ('Templado'. lugar l.id_lugar AND l.id_tipo_lugar AND t. SELECT DISTINCT l.id_lugar AND l.id_lugar AND l. pais p WHERE v.apellidos. lugar l.id_pais = p.fecha BETWEEN TO_DATE('01/06/2005'.id_viajero AND vi.nombre FROM viajero v.'Europa') AND l.id_viajero AND vi. SELECT DISTINCT v. viaje vi.id_lugar = l. l.id_viajero = vi.

continente = 'Oceanía'. con clima informado y que estén en un continente que no sea Asia SELECT l.continente = 'Asia' .0) DESC. 3.Seleccionar las ciudades con clima Templado SELECT l.Sintaxis Estándar 1.Mostrar un listado de lugares de los paises de Asia con menos de 50 millones de habitantes. l.nombre. 5. p.continente = 'América del Sur' ORDER BY NVL(l.nombre.clima.id_tipo_lugar) WHERE clima = 'Templado'.Mostrar el nombre y el clima de los lugares situados en América del Sur ordenados por número de habitantes.nombre AS "Lugar". SELECT l.nombre FROM lugar l JOIN tipo_lugar t ON (l.continente <> 'Asia' AND l.tipo_lugar = t.habitantes. 4.habitantes FROM lugar l JOIN pais p USING (id_pais) WHERE p.num_habitantes < 500000000 AND p.continente LIKE 'América%' OR p. SELECT l.descripcion NOT LIKE '%ciudad%' AND l.nombre AS "País" FROM lugar l JOIN pais p USING (id_pais) WHERE p. 2.continente FROM lugar l JOIN pais p USING (id_pais) WHERE p.clima IS NOT NULL. l. de mayor a menor SELECT l. p.Seleccionar el nombre y el continente de los paises de América y Oceanía.nombre AS "Lugar" FROM lugar l JOIN pais p USING (id_pais) WHERE p.Seleccionar los lugares que no tengan el texto 'ciudad' en su descripción.

vi. SELECT v. v.id_lugar = vi.fecha.tipo_lugar = t.apellidos FROM viajero v JOIN viaje vi ON (v.nombre.id_lugar) WHERE l. .nombre.id_lugar) WHERE TO_CHAR(vi.nombre = 'Ciudad' AND NVL(l.habitantes IS NULL AND vi.Mostrar todos los diferentes viajeros que hayan viajado a Londres.continente IN ('Asia'.Mostrar las ciudades de Asia y África con clima Tropical. 9.id_viajero) JOIN lugar l ON (l.id_lugar) WHERE l.presupuesto_diario < 25.id_viajero = vi.id_tipo_lugar) JOIN pais p USING (id_pais) WHERE t.'No informado') AND p.Listar el nombre y apellidos de los viajeros. v. SELECT DISTINCT v.id_lugar = vi.id_viajero) JOIN lugar l ON (l.clima.id_viajero = vi.nombre.clima.'Subtropical'. 'África'). SELECT l.fecha.perfil_viajero FROM viajero v JOIN viaje vi ON (v.'YYYY') = '2004' ORDER by vi.nombre. Subtropical o no informado. SELECT DISTINCT v. l.fecha FROM viajero v JOIN viaje vi ON (v. 7.6. NVL(l. 8. además del lugar de destino de todos los viajes realizados en 2004.continente FROM lugar l JOIN tipo_lugar t ON (l.'No informado') AS "Clima".id_viajero) JOIN lugar l ON (l.id_lugar = vi.nombre = 'Londres'.Hacer un listado de los diferentes perfiles de viajero que tengan un presupuesto inferior a 25 € en sus viajes a lugares sin número de habitantes informado.'No informado') IN ('Tropical'.id_viajero = vi.apellidos. p.

nombre IS NULL.nombre FROM pais p RIGHT JOIN lugar l USING (id_pais) WHERE p.dia_hasta) WHERE t.id_lugar = vi.id_lugar AND l.nombre = 'Vacaciones' ORDER BY v. .nombre FROM pais p LEFT JOIN lugar l USING (id_pais) WHERE l.id_viajero = vi.apellidos FROM viajero v JOIN viaje vi ON (v. 'Roma') AND vi. SELECT DISTINCT v.id_viajero) JOIN tipo_estancia t ON ( vi.nombre.nombre. SELECT p.Mostrar los lugares que no tienen pais asignado.10.id_viajero = vi.Hacer un listado con los viajeros que no han realizado ningún viaje.Mostrar los paises que no tienen ningún lugar dado de alta.presupuesto_diario. 13.numero_dias BETWEEN t. v.presupuesto_diario.perfil_viajero.id_lugar) WHERE v. vi. vi. 12.dia_desde AND t.id_viajero = vi.id_viajero) WHERE vi.valoracion < 5.id_lugar = l.Mostrar los diferentes perfiles de viajero y gasto de todos los viajes considerados de vacaciones.numero_dias FROM viajero v JOIN viaje vi ON (v. SELECT l.id_viajero) JOIN lugar l ON (l.id_viajero AND vi.id_viajero = vi. SELECT DISTINCT v.perfil_viajero.apellidos FROM viajero v LEFT JOIN viaje vi ON (v.nombre IN ('París'.Listar los diferentes viajeros que hayan valorado un viaje a París o Roma con suspenso. 14. SELECT DISTINCT v.id_viajero IS NULL. vi.nombre IS NULL. v. 11.

SELECT l.id_lugar = l.nombre IN ('Playa'.nombre FROM viajero v JOIN viaje vi USING (id_viajero) JOIN lugar l ON (vi.nombre. 17. v.Mostrar los distintos viajeros que han realizado un viaje a una ciudad de menos de 5 millones de habitantes. SELECT DISTINCT v.tipo_lugar = t.'DD/MM/YYYY').id_lugar = l.valoracion < 5 AND v.id_lugar) JOIN tipo_lugar t ON (l.nombre FROM lugar l LEFT JOIN viaje vi ON (l. 16. 18.15.perfil_viajero IN ('CLASE_BUSSINESS'.'DD/MM/YYYY') AND TO_DATE('31/08/2003'.nombre = 'Ciudad'.id_lugar) WHERE vi.id_tipo_lugar) WHERE l.id_lugar IS NULL. .fecha BETWEEN TO_DATE('01/06/2001'.id_lugar) JOIN tipo_lugar t ON (l.apellidos FROM viajero v JOIN viaje vi USING (id_viajero) JOIN lugar l ON (vi.Mostrar los perfiles de viajero que hayan estado en América entre Junio de 2001 y Agosto de 2003.Listar los lugares a los que no se ha realizado ningún viaje.tipo_lugar = t.perfil_viajero FROM viajero v JOIN viaje vi USING (id_viajero) JOIN lugar l USING (id_lugar) JOIN pais p USING (id_pais) WHERE p.continente LIKE 'América%' AND vi.id_tipo_lugar) WHERE t.'PRIMERA_CLASE'). 'Montaña') AND vi.Hacer un listado con todos los lugares de playa o montaña que hayan sido suspendidos por algún viajero de clase bussines o primera clase.id_lugar = vi. SELECT DISTINCT l. SELECT DISTINCT v.habitantes < 5000000 AND t.

20.'Continental'). v.Mostrar los nombres de los viajeros que hayan viajado a una ciuad de clima Templado o Continental que no esté situada en Asia o Europa.continente NOT IN ('Asia'.apellidos viajero FROM viajero v JOIN viaje vi USING (id_viajero) JOIN lugar l USING (id_lugar) JOIN pais p USING (id_pais) WHERE p.nombre.continente = 'Asia' AND vi. SELECT v. .19.nombre. v.clima IN ('Templado'.nombre FROM viajero v JOIN viaje vi USING (id_viajero) JOIN lugar l USING (id_lugar) JOIN pais p USING (id_pais) WHERE p.apellidos. vi.Mostrar los diferentes viajeros que se hayan desplazado a Asia entre junio de 2005 y junio de 2006. l.'DD/MM/YYYY'). SELECT DISTINCT v.fecha BETWEEN TO_DATE('01/06/2005'.'Europa') AND l.'DD/MM/YYYY') AND TO_DATE('30/06/2006'.fecha.

Sign up to vote on this title
UsefulNot useful