Está en la página 1de 3

U.D. 4 Boletín 1. SQL. 1º ASIR. GBD.

2022-2023

1. Ejecutar en la base de datos el script SQL sc_bol1.sql suministrado junto con el ejercicio.
Podéis utilizar SQLPlus o SQL Developer.

Este script crea, para el usuario con el cual lo ejecutemos, el esquema relacional de un pequeño
problema de bases de datos. También inserta algunas filas de ejemplo para que podamos
practicar con sentencias de consulta de datos de SQL. Las tablas creadas son las siguientes:

TIPOS_BARCO (codtipo, descripcion, numarmas, desplazamiento);


BARCOS (codbarco, nombre, pais, codtipo, fechabotadura, codjefeesc);
BATALLAS (codbatalla, nombre, fecha);
RESULTADOS (codbarco, codbatalla, pctperdidas);
Para no crear estas tablas en el usuario SYSTEM o SYS (nada recomendable) o en el usuario
HR podemos crear previamente un nuevo usuario o esquema en la base de datos desde el que
ejecutaremos el script. Podemos crear el usuario EJERCICIOS al que nos aseguraremos de darle
los roles y privilegios adecuados. (nombre de usuario en mayúsculas)
Roles debe tener al menos: CONNECT y RESOURCE
Privilegios: CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE
SEQUENCE, CREATE PROCEDURE, CREATE VIEW, UNLIMITED TABLESPACE
2. Observad el resultado de la ejecución del script. Estudiad las tablas que se han creado junto con
sus restricciones y los tipos de datos de sus columnas. Dibujad el diagrama entidad relación
asociado al esquema relacional.
3. Obtener el nombre, país y fecha de la botadura de todos los barcos de la base de datos.
4. Obtener toda la información de todos los tipos de barcos.
5. Recuperar todas las filas de la tabla batallas renombrando la columna codbatalla como Código
de la batalla y fecha como Fecha de la batalla.

6. Obtener todos los códigos de tipo de barco que pueden existir en nuestra base de datos.

7. Obtener, para todos los tipos de barco de nuestra base de datos, la descripción y el campo
número de armas, este último incrementado en un 50%.

8. Obtener una lista de todas las batallas de la base de datos donde cada batalla se presente de la
siguiente forma: La batalla de código XXX tuvo lugar en la fecha XX-XX-XXXX

9. Obtener cuáles son los códigos de tipo de barco para los que existe algún barco en nuestra base
de datos .

10. Obtener cuáles son los códigos de tipo de barco junto con el país de procedencia para los que
existe algún barco en nuestra base de datos.

11. Obtener los tipos de barco cuyo número de armas sea superior a 30.

12. Obtener todos los barcos cuya nombre sea mayor o igual que NEPTUNO.

13. Obtener la fecha de las batallas realizadas antes del 1-3-1770.

MLLS. Dpto. Informática. IES San Sebastián Página 1 de 3


U.D. 4 Boletín 1. SQL. 1º ASIR. GBD. 2022-2023

14. Obtener los nombres y países de origen de aquellos barcos que sean de tipo 1 y de nombre
menor a NEPTUNO

15. Obtener toda la información de los tipos de barcos que desplacen menos de 2000 toneladas o
tengan más de 60 armas.

16. Obtener aquellos barcos que sean de INGLATERRA o de FRANCIA y cuyo tipo sea el 3.

17. Obtener aquellas batallas que tuvieron entre el 1-1-1780 y 31-12-1799.

18. Obtener todos aquellos barcos que sean del tipo 1,3,5 ó 7.

19. Obtener todos aquellas batallas que tengan la fecha de realización a NULL.

20. Obtener todos aquellas batallas que tengan la fecha de realización a no NULL y cuyo nombre
esté entre CABO y LUGO.

21. Obtener todos los nombres de los barcos que comiencen por B y que contengan el carácter
subrayado en el mismo.

22. Obtener todos los nombres de los barcos para los que el nombre tenga una A como segundo
carácter.

23. Hallar el producto cartesiano de las tablas TIPOS_BARCO y BARCOS. Estudiar el resultado
de esa consulta. ¿Por qué produce ese número tan alto de filas?.

24. Obtener una lista con los códigos de los barcos, su nombre y la descripción del tipo de barco al
que pertenece.

25. Obtener la lista de los barcos ingleses, reflejando su código de barco, nombre, código de tipo y
descripción del tipo de barco

26. Obtener la lista de los barcos dañados en alguna batalla, mostrando para cada barco su código,
nombre, país y porcentaje de daños sufridos.

27. Obtener un listado del nombre de cada barco junto con el de su jefe de escuadra.

28. Obtener un listado de los tipos de barcos existentes junto con todos los barcos que existan para
ese tipo. Deben aparecer las columnas código de tipo, descripción, código de barco, nombre de
barco y país. Si no existen barcos para el tipo de barco mostrar únicamente la información del
tipo.

29. Obtener el nombre, el país y la fecha de botadura de todos los barcos que participaron en la
batalla de TENERIFE.

30. Obtener las batallas en las que participaron barcos de la clase FRAGATA.

31. Obtener los barcos con desplazamiento superior a 3000 toneladas.

32. Obtener el número de barcos de cada tipo que existen en nuestra base de datos.

33. Obtener el número de tipos de barcos que existen en nuestra base de datos.

MLLS. Dpto. Informática. IES San Sebastián Página 2 de 3


U.D. 4 Boletín 1. SQL. 1º ASIR. GBD. 2022-2023

34. Obtener para cada país la fecha de botadura de barco más baja y la más alta.

35. Obtener la fecha en la que se botó el barco más antiguo de nuestra base de datos.

36. Obtener el número de barcos de cada tipo que existen clasificados por país y descripción de
tipo.

37. Obtener un listado con el código de batalla, nombre de la batalla y el número de barcos que
participaron en ella.

38. Obtener los barcos que resultaron dañados en al menos dos batallas.

39. Obtener las batallas en las que participaron al menos tres barcos del mismo país.

40. Obtener los nombres de las clases de barcos tales que al menos un barco de la clase se hundió
en una batalla.

41. Para cada clase, encontrar el año en el que fue botado el barco más antiguo de la clase.

42. ¿Qué barcos son del mismo país que el barco NEPTUNO?.

43. Visualizar las batallas que se hayan librado después de la batalla de LUCON pero antes de
1800.

44. Visualizar el código de barco, nombre y país de todos los barcos cuya fecha de botadura sea
máxima.

45. Visualizar aquellos países que poseen menos barcos que INGLATERRA.

46. Obtener la lista de todos los barcos que desplacen más toneladas que la media de
desplazamiento de los barcos su país.

47. Obtener la lista de todos los códigos de barcos de aquellos barcos que son jefe de escuadra.

48. Obtener la lista de todas las batallas en las que haya participado algún barco jefe de escuadra.

49. Obtener los barcos que no hayan participado en ninguna batalla.

50. Obtener los tipos de barco para los que existen barcos en la base de datos.

51. Obtener la unión de todos los barcos ingleses que han participado en alguna batalla y de todos
los barcos franceses que no han participado en ninguna batalla.

MLLS. Dpto. Informática. IES San Sebastián Página 3 de 3

También podría gustarte