0% encontró este documento útil (0 votos)
418 vistas24 páginas

Consultas SQL y Diseño de Bases de Datos

Este documento presenta una serie de ejercicios sobre consultas SQL básicas utilizando tablas simples y relacionales. Los ejercicios cubren la creación de tablas y bases de datos, inserción, selección, ordenamiento, modificación y eliminación de datos, así como operaciones matemáticas básicas y el manejo de valores nulos. El documento proporciona instrucciones paso a paso para practicar y consolidar los conceptos básicos de SQL.

Cargado por

Camilo Orozco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
418 vistas24 páginas

Consultas SQL y Diseño de Bases de Datos

Este documento presenta una serie de ejercicios sobre consultas SQL básicas utilizando tablas simples y relacionales. Los ejercicios cubren la creación de tablas y bases de datos, inserción, selección, ordenamiento, modificación y eliminación de datos, así como operaciones matemáticas básicas y el manejo de valores nulos. El documento proporciona instrucciones paso a paso para practicar y consolidar los conceptos básicos de SQL.

Cargado por

Camilo Orozco
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

1- Consultas básicas con una tabla

 1.2. Crea en ella una tabla llamada "ciudades". De cada ciudad se deseará guardar su
nombre (de 40 letras o menos) y su población (de 9 cifras o menos).

 1.3. Usando el formato abreviado de INSERT, añade la ciudad "Alicante", con 328.648
habitantes.

 1.4. Indicando primero la población y luego el nombre, añade una ciudad de 3.141.991
habitantes llamada "Madrid".

 1.5. Muestra todos los datos de todas las ciudades existentes en la base de datos.

 1.6. Muestra la población de la ciudad llamada "Madrid".

 1.7. Muestra el nombre y la población de todas las ciudades que contienen una letra "e"
en su nombre.
 1.8. Muestra el nombre y la población de todas las ciudades, ordenadas de la más poblada
a la menos poblada. Si dos o más ciudades tienen misma cantidad de habitantes, se
mostrarán ordenadas de la A a la Z.

2- Consultas básicas con dos tablas

 2.1. Crea una base de datos llamada "ejercicio2". En ella guardaremos información (muy
poca) de marcas y modelos de coches. De cada marca almacenaremos el nombre y el país
de origen, junto con un código de 3 letras. Para cada modelo anotaremos la marca, el
nombre y el segmento al que pertenece (por ejemplo, "urbano", "compacto", "familiar",
"todoterreno", etc.) Usaremos sólo dos tablas: una para marcas y otra para modelos, y
sólo usaremos clave principal en "marcas".

 2.2. Usando el formato detallado de INSERT, añade la marca "Ferrari", con país de origen
"Italia". Su código será "F". Añade también, con código "SAL", la marca "Saleen", de
"Estados Unidos".

 2.3. Con el formato abreviado de INSERT, añade el modelo "S7" de "Saleen", que
pertenece al segmento llamado "deportivo". En el mismo segmento, añade el F40 de
Ferrari.
 2.4. Muestra las marcas y modelos de todos los coches del segmento "deportivo".

 2.5. Muestra marca, país y modelo de todos los vehículos cuya marca comienza por "F".

 2.6. Muestra país, modelo y segmento de los coches cuyo modelo contenga una letra "S"
3- Contacto con los diagramas Entidad-Relación

 3.1. Deseamos informatizar una lista de empleados técnicos de nuestra empresa, que sean
capaces de resolver problemas de nuestros clientes. Por eso, para cada empleado nos
interesará guardar información sobre todas sus habilidades técnicas (por ejemplo, "bases
de datos" o "programación") así como los idiomas que maneja con soltura (por ejemplo,
"inglés" o "alemán"). Como puede haber varias personas que tengan una cierta habilidad
técnica o que hablen un cierto idioma, usaremos tablas para esos datos y relaciones
"muchos a muchos". Además, querremos valorar de 1 a 5 el nivel que cada empleado
tiene con una habilidad técnica o con un idioma (distinguiendo en este caso entre nivel
hablado y nivel escrito). Crea un diagrama Entidad-Relación que muestre cómo
automatizar este sistema de información. (Pista: las preguntas 3.3 a 3.7 te ayudarán a
plantear qué estructura da respuesta a todo lo que se puede necesitar, así como a saber
qué tipo de datos puedes emplear)
 3.2. Convierte a tablas el sistema Entidad-Relación, dentro de una nueva base de datos
llamada "ejercicio3".
 3.3. Añade a los usuarios (y habilidades e idiomas) los siguientes datos:

o Aurora, con nivel de 5 estrellas en PHP, 4 estrellas en Javascript, 5 estrellas en diseño


gráfico y 3 estrellas en idioma inglés.

o Adrián, con nivel de 4 estrellas en PHP, 4 estrellas en Javascript, 5 estrellas en montaje de


equipos y 2 estrellas en idioma inglés.

o Enrique, con 5 estrellas en electrónica y 2 estrellas en idioma inglés.

o Gala, con 5 estrellas en inglés, 5 estrellas en francés y 5 estrellas en atención al cliente.


 3.4. Muestra el nombre de todas las personas que hablen francés.

 3.5. Muestra los nombres de los empleados con conocimientos de diseño gráfico,
ordenados del más experto (5 estrellas) al menos experto (1 estrella).

 3.6. Muestra las habilidades de Adrián, ordenadas de aquella en la que es más experto a
aquella en la que menos. Si dos habilidades coinciden, deberás ordenarlas
alfabéticamente.

 3.7. Nos llama un cliente que sólo habla inglés y que quiere hacer una consulta técnica.
Por eso, deberás obtener los nombres de los empleados con conocimientos de PHP y de
inglés, ordenados de mayor a menor nivel de inglés, y, en caso de coincidir, de mayor a
menor nivel de PHP.

4- Borrado de datos
 4.1. Crea una base de datos llamada "ejercicio4". En ella guardaremos información de
artículos de revistas. De cada revista almacenaremos el nombre, el mes y el año, junto con
un código de no más de 8 letras. Para cada artículo anotaremos un código, el título, la
revista en la que aparece, la página inicial y la página final (se trata de una relación 1:M, ya
que cada revista puede contener varios artículos y cada artículo sólo aparecerá en una
revista). Diseña el diagrama Entidad-Relación y crea las tablas.
 4.2. Añade la revista "Byte 9", del mes 10 de 1984, con código "BY009". Añade también la
revista "PcWorld España 195", del mes 2 de 2003, con código "PCWE195".

 4.3. Incluye también los artículos:

"The IBM PC AT", con código "AT", en la revista Byte 9, de la página 108 a la 111.

"Database Types", con código "DbTypes", en la revista Byte 9, de la página 138 a la 142.

"12 Distribuciones Linux", con código "DistLinux", en la revista PCWE195, de la página 96 a la 109.
 4.4. Muestra todos los artículos, ordenados por año, mes y título.

 4.5. Muestra todos los artículos de revistas "Byte" que contengan la palabra "PC" en su
nombre, ordenados por título.

 4.6. Crea una tabla "CopiadeArticulos", con los mismos campos que la tabla Artículos. Usa
la orden "INSERT INTO CopiadeArticulos (SELECT * FROM articulos)" para volcar a la nueva
tabla todos los datos que existían en la antigua.

 4.7. Borra de CopiadeArticulos aquellos artículos que comiencen en páginas por encima de
la 120. Muestra los nombres de artículos existentes y su página inicial, ordenados por
número de página inicial, para comprobar que el borrado es correcto.
 4.8. Borra de CopiadeArticulos aquellos artículos que aparezcan en revistas Byte. Muestra
los nombres de artículos existentes y el nombre de la revista a la que pertenecen,
ordenados por revista y luego por título de artículo, para comprobar que el borrado es
correcto.

 4.9. Borra la tabla CopiadeArticulos y comprueba que ya no aparece en el sistema.

5- Modificación de datos

 5.4. Muestra todos los datos: nombre de revista, mes, año, nombre de artículo, página
inicial. Deben aparecer ordenados por nombre de artículo.
 5.5. Corrige el artículo "Database Types" ("DbTypes"): no comienza en la página 138 sino
en la 137.

 5.6. Cambia el nombre del artículo "12 Distribuciones Linux" para que pase a ser "12
Distribuciones GNU/Linux".

 5.7. En la base de datos llamada "ejercicio5" (o en "ejercicio4", si estás partiendo de la


base de datos anterior), amplía la tabla Revista añadiendo al final de todos los campos un
campo adicional de tipo texto: el país el que se edita (por ejemplo, "España" o "Estados
Unidos").

 5.8. En la tabla de Artículos, añade el campo Autor (texto), antes del número de página
inicial.
6- Operaciones matemáticas

 6.1. Muestra el nombre de cada artículo y la cantidad de páginas que ocupa (página final -
página inicial + 1; por ejemplo, un artículo que empiece en la página 3 y acabe en la 4
ocupa dos páginas).

 6.2. Muestra la cantidad de artículos que hay en la base de datos.

 6.3. Muestra la cantidad de revistas que contienen "byte" en su nombre.

 6.4. Muestra la media del año de publicación de las revistas de la base de datos.
 6.5. Muestra el año de publicación de la revista más antigua de la base de datos (el
mínimo de los años) y el de la más moderna (el máximo).

 6.6. Muestra el total de páginas que tenemos indexadas (mira la pregunta 6.1 para ver una
pista de cómo calcular las páginas de cada artículo).

7- Valores nulos

 7.1. Crea una base de datos "ejercicio7", con una única tabla "ciudades". Cada ciudad
tendrá un código (clave primaria), un nombre (no nulo) y una cantidad de habitantes (que
sí podrá tener valores nulos).

 7.2. Añade las ciudades: Boston (código BO, 4.180.000 habitantes) y Kyoto (código KY, sin
indicar el número de habitantes).
 7.3. Intenta añadir la ciudad Astana, sin código.

 7.4. Intenta añadir la ciudad de código ELX pero de la que aún no sabemos el nombre.

 7.5. Muestra el nombre y población de todas las ciudades para las que sabemos la
cantidad de habitantes, ordenadas de la menos poblada a la más poblada.

 7.6. Muestra el nombre de las ciudades que tienen 0 habitantes, ordenadas


alfabéticamente.
 7.7. Muestra el nombre de las ciudades para las que no conocemos la cantidad de
habitantes, ordenadas alfabéticamente.

8- Valores agrupados

 8.1. Crea una base de datos "ejercicio8", con una única tabla "ordenadores". De cada
ordenador se desea guardar un código (que será la clave primaria), una marca (no nula),
un modelo y un año de lanzamiento (mira los datos de ejemplo para deducir los tipos de
datos necesarios).
 8.2. Añade los ordenadores:
o IBM5150, IBM, PC (5150), 1981
o SPEC48, Sinclair, ZX Spectrum 48K, 1982
o CPC464, Amstrad, CPC464, 1984
o HB55, Sony, Hit-Bit 55 MSX, 1984
o QL, Sinclair, QL, 1984
o PPC640DD, Amstrad, PPC640 DD, 1988

 8.3. Muestra la cantidad total de ordenadores que tenemos registrados en nuestra base
de datos.

 8.4. Muestra la cantidad de ordenadores de cada marca.


 8.5. Muestra la cantidad de ordenadores lanzados en 1984 o más tarde.

 8.6. Muestra la cantidad de ordenadores por cada marca, pero teniendo en cuenta sólo
lanzados en 1984 o más tarde.

 8.7. Muestra la cantidad de ordenadores de cada marca, pero sólo para las marcas de las
que tengamos 2 o más equipos.
 8.8. Como verás con más detalle en el apartado 10, la función SUBSTRING permite obtener
una subcadena. Por ejemplo, SUBSTRING(modelo,1,2) permitiría saber las dos primeras
letras del modelo de un ordenador. Usando esta función, deberás mostrar la cantidad de
ordenadores que tenemos cuya marca empieza con una letra "S".

 8.9. Muestra la cantidad de ordenadores, agrupados por la inicial de su marca.

 8.10. Muestra el nombre (modelo) del ordenador más moderno del que tenemos
constancia para cada marca.
9- Subconsultas

 9.1. Partiremos de la base de datos "ejercicio8", que creaste en el ejercicio 8.1. Si no lo


habías hecho, crea ahora una nueva base de datos "ejercicio9", que tendrá una única tabla
"ordenadores". De cada ordenador se desea guardar un código (que será la clave
primaria), una marca (no nula), un modelo y un año de lanzamiento (mira los datos de
ejemplo para deducir los tipos de datos necesarios).

 Añade los ordenadores:


o ATM, Oric, Atmos, 1984
o ZX80, Sinclair, ZX80, 1980
o VIC20, Commodore, VIC-20, 1981
o VG8235, Philips, VG8235 MSX2, 1985
o C64, Commodore, 64, 1982
o 520ST, Atari, 520ST, 1985
 9.3. Muestra la(s) marca(s) de la(s) que tenemos más ordenadores.

 9.4. Muestra los modelos de los ordenadores pertenecientes a la(s) marca(s) de la(s) que
tenemos más ordenadores

 9.5. Muestra los modelos de los ordenadores pertenecientes a la(s) marca(s) a la que
pertenece el ordenador más reciente, ordenados alfabéticamente (usando el modelo
como criterio de ordenación).

 9.6. Muestra todos los datos de los ordenadores de la primera marca (alfabéticamente,
ordenadas de la A a la Z).
 9.7. Muestra los modelos de los ordenadores que no pertenezcan a las marcas que
comienzan con letra A, usando una subconsulta.

10 - Funciones de cadena

 10.1. Crea una base de datos "ejercicio10", en la que guardaremos información sobre
selecciones nacionales de baloncesto. Para ello tendremos: una tabla "PAISES" y una tabla
"JUGADORES", unidas por una relación 1:M (cada país podrá tener muchos jugadores y
cada jugador sólo podrá formar parte -en un instante dado- de la selección de un país). De
cada país guardaremos el nombre (por ejemplo, "España") y un código que actuará como
clave primaria (por ejemplo, "ESP). De cada jugador anotaremos código, nombre,
apellidos, posición y, como resultado de esa relación 1:M, código de la selección a la que
pertenece.
 10.2a. Añade los países:
o ESP, España
o ARG, Argentina
o AUS, Australia
o LIT, Lituania

También podría gustarte