You are on page 1of 8

Control Semana 6

Roberto Pulgar Roco

Fundamento de base de Datos Sub consultas en SQL

Instituto IACC

04-03-2019
Desarrollo

Se tiene la siguiente tabla que registra una librería los datos de los libros, asi como los datos de la

editorial y autor

Código Autor Código_Libro Nombre Código_Editorial Precio Porc_Descuento

0001 0001 Soluciones de 0001 45.200,16 10

programación

0001 0002 Guía completa de 0001 33.520,52 5

programa en java

0001 0003 Introducción a la 0002 51.000,33 0

informática

0001 0004 Hardware y 0001 26.700,25 25

software

0002 0005 Introducción a los 0003 36.000,87 30

algoritmos

0002 0006 Introducción a las 0004 52.100,17 40

bases de datos

0003 0007 Fundamento de 0001 46.500,29 15

programación

0003 0008 ¿Cómo programar 0002 48.000,33 10

en Java?

0004 0009 Administración de 0005 36.500,41 20

base datos

0005 0010 Estructuras de 0002 29.200,27 5

datos

0005 0011 Base de Datos 0003 32.000,39 0

0006 0012 Introducción 0001 46.500,14 10

A .Net
Código_Editorial nombre

0001 Bonum

0002 Sirio

0003 Bibliográfica

0004 Grupo editorial Ronda

0005 Mcgraw-Hill

Código_Autor nombre

0001 Luis Joyanes

0002 Caterina Velásquez

0003 Carmen Gil

0004 Álvaro Gómez

0005 Luis Angulo

0006 Ana María Villar

Según los datos mostrados 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.

Respuesta: SELECT Codigo_Autor, Nombre,

FROM autor

WHERE (select COUNT (*) From libreria HERE codico_libro);

Este tipo de subconsultas va a permitir incluir en el WHERE algo que se quiere retornar

específicamente de otra consulta, es decir, basar la sentencia actual en el resultado obtenido en

otra sentencia SELECT. Por ejemplo, si se quisiera mostrar todos los clientes que tengan 1 o más

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

librería

Respuesta: SELECT Codigo_editorial, Nombre,

FROM editorial

WHERE (select COUNT (*) FROM libreria WHERE codico_libro);

Lo mismo que en el ejercicio 1 sino que solemente cambia la orden de subconsuta de la cantidad

de libro de la editorial

3) Liste el código de autor, código de libro, código de editorial y precio de aquellos libros

que tengan un porcentaje de descuento igual o mayor al 15%

SELECT Codigo_autor, código_libro NOMBRE, Codigo_editorial

FROM editorial

WHERE porcent_descuento =<0.15;

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

de aquellos libros que tengan un porcentaje de descuento menor al 20%

SELECT Codigo_autor, código_libro Nombre, Codigo_editorial

FROM editorial

WHERE porcent_descuento >0.20;

5) Liste el coidigo de autor, y la suma de los precios de los libros que le pertenece

SELECT código_autor, SUM (precio)

FROM librería

GROUP BY código_autor
6) liste el código de autor, y la suma de los precios de los libros que le pertenecen, mostrando

solo aquellos donde la suma de sus precios sea menor a 40.000 pesos

SELECT código_autor, SUM(precio)

FROM librería

GROUP BY código_autor

HAVING SUM(precio)>40.000

para entender esta subconsultas, se debe iniciar por conocer que es la cláusula HAVING, pero

antes de esta se debe conocer GROUP BY, permite agrupar filas o registros por algún criterio,

por algún criterio; por ejemplo, se podría por cliente las facturas que tiene asociadas y ver el

monto que han pagado

fase 2

suponga que en un instituto profesional tiene en su base de datos una tabla de ESTUDIANTES

(con los datos de estos), una ASIGNATURA _ESTUDIANTES (con los datos de la asignatura

tomadas por cada estudiante y la calificación obtenida) de acuerdo a esta semana, ¿cree usted que

sea útil el SELECT con múltiples tablas? ¿para qué caso lo utilizaría? Fundamente su respuesta.

Rut Nombre Apellido

17.164.886-6 Roberto Pulgar Roco

17.164.889-9 Joaquín Pulgar Peña

18.247.89-7 Ángela Peña Espinoza


Código_ Materia Materia

001 Matemática

002 Ingles

003 Historia

Rut Materia Calificación

17.164.886-6 001 5.0

17.164.889-9 002 3.9

18.247.89-7 003 7.0

En este caso podemos usar el comando SELECT para poder encontrar las calificaciones menores

a 4.0 y esto sería así

SELECT calificaciones, Rut, codico_materia , Nombre

FROM calificaciones

WHERE calificaciones>4.0;

2) imagínese que en 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.


Rut Nombre Apellido

17.164.887-9 Roberto Pulgar

15.247.123-9 Joaquín Pulgar

17.241.528-8 Ángela Peña

Código_libro Libro

0001 El principito

0002 Aritmética

0003 Ciencias Sociales

Código_libro Rut Fecha_prestamo

0001 17.164.887-9 01-01-2019

0002 15.247.123-9 02-01-2019

0003 17.241.528-8 03-01-2019

SELECT nombre, Rut, código_libro, libro

FROM ESTUDIANTES

SELECT DATEDIFF (dd, “01-06-2019” , “05-01-2019” )

FROM fecha_prestamo
Otro ejemplo para saber los días de que han pasado desde el préstamo

Bibliografía

[Haga triple clic en cualquier parte de este párrafo para escribir la primera referencia bibliográfica.]

Iacc 2019 semana 6 fundamento de base de dato

You might also like