Sie sind auf Seite 1von 5

SQL: LENGUAJE PARA LA DEFINICIÓN,

MANIPULACIÓN Y CONTROL DE BASES DE

DATOS RELACIONALES III.

Juan Paulo Figueroa Maldonado

FUNDAMENTOS DE BASES DE DATOS

INSTITUTO IACC

04 de Marzo, 2018
Introducción.
OBJETIVO DEL CONTROL: Desarrollar subconsultas en SQL.
RECURSOS NECESARIOS: Contenidos de la semana 5.
INSTRUCCIONES: Esta evaluación comprende 2 fases, lea detenidamente y responda:

Desarrollo

Fase I: Se tienen las siguientes tablas que registran para una librería los datos de los libros, así
como los datos de la editorial y autor.
Según los datos anteriormente mostrados, entregue las siguientes consultas, incluyendo las
subconsultas en la cláusula que considere adecuada:

1. Liste el código del autor, nombre y la cantidad de libros que tiene en el registro de la
librería.
Select codigo_autor, nombre , ( select count(1) from libreria where autor.codigo_autor =
libreria.codigo_autor)
from autor;

2. Liste el código de la editorial, nombre y la cantidad de libros que tiene en el registro de


la librería.
Select codigo_editorial, nombre , ( select count(1) from libreria where
editorial.codigo_editorial = libreria.codigo_editorial)
from editorial;

3. Liste el código de autor, código de libro, nombre, código de editorial y precio, de


aquellos libros que tengan un porcentaje de descuento igual o mayor al 15%.
Select codigo_autor, codigo_libro, nombre,codigo_editorial, precio
from libreria
where porc_decuento >=15;

4. Liste el código de autor, código de libro, nombre, código de editorial y precio, de


aquellos libros que tengan un porcentaje de descuento menor al 20%.
Select codigo_autor, codigo_libro, nombre, codigo_editorial, precio
from libreria
where porc_decuento <20;

5. Liste el código de autor, y la suma de los precios de los libros que le pertenecen.
Select codigo_autor, sum(precio) from librería
Group by codigo_autor
6. Liste el código de autor, y la suma de los precios de los libros que le pertenecen,
mostrando sólo aquellos donde la suma de sus precios sea menor a 40.000 pesos.
Select codigo_autor, sum(precio)
from librería
Group by codigo_autor
Having count(precio) <40000

Fase II: Lea detenidamente y fundamente su respuesta:

1. Suponga que un Instituto Profesional tiene en su base de datos una tabla de


ESTUDIANTES (con los datos de estos), una de ASIGNATURAS_ESTUDIANTES (con los datos de
las asignaturas tomadas por cada estudiante y la calificación obtenida). De acuerdo a este
esquema, ¿cree usted que sea útil el SELECT con múltiples tablas?, ¿para qué caso lo utilizaría?
Fundamente su respuesta.
Sí, es útil, debido a que me permite relacionar diferentes tablas.
Por ejemplo, para obtener la información de la cantidad de asignaturas por cada estudiante:

Select rut, nombre, apellido_paterno, apellido_materno, (select count(1) from


asignaturas_estudiantes where cod_estudiante.estudiantes =
cod_estudiante.asginaturas_estudiantes) from estudiantes

O para obtener la calificación más alta de cada estudiante:

Select rut, nombre, apellido_paterno, apellido_materno, (select max(calificacion) from


asignaturas_estudiantes where cod_estudiante.estudiantes =
cod_estudiante.asginaturas_estudiantes) from estudiantes
2. Imagínese que la biblioteca de una Universidad tiene en su base de datos una tabla de
ESTUDIANTES (con los datos de estos), una de LIBROS_ESTUDIANTES (con los datos de los libros
solicitados por cada estudiante y la fecha de cada préstamo). De acuerdo a este esquema, ¿cree
usted que sea útil el SELECT con múltiples tablas?, ¿para qué caso lo utilizaría? Fundamente su
respuesta
Sí, al igual que en la pregunta anterior, es útil para relacionar las 2 tablas indicadas.
Por ejemplo para saber la cantidad de libros que ha solicitado cada estudiante:

Select rut, nombre, apellido_paterno, apellido_materno, (select count(1) from


libros_estudiantes where cod_estudiante.estudiantes = cod_estudiante.libros_estudiantes)
from estudiantes

O la última fecha solicitada:

Select rut, nombre, apellido_paterno, apellido_materno, (select max(fec_prestamo) from


libros_estudiantes where cod_estudiante.estudiantes = cod_estudiante.libros_estudiantes)
from estudiantes

Bibliografía
 Fundamentos de Bases de datos, IACC, 2017, Semana 6.

Das könnte Ihnen auch gefallen