Vous êtes sur la page 1sur 6

Subconsultas en SQL

Buri Jimenez Cortes

Fundamentos de bases de datos

Instituto IACC

06-08-2018
INSTRUCCIONES: 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.
Desarrollo

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,
FROM autor
WHERE (select COUNT (*) FROM libreria WHERE codigo_libro);

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,
FROM editorial
WHERE (select COUNT (*) FROM libreria WHERE codigo_libro);

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
FROM editorial
WHERE porcent_descuento = < 0,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
FROM editorial
WHERE porcent_descuento > 0,20;

5. Liste el código de autor, y la suma de los precios de los libros que le pertenecen.
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

Fase II
1-
La instrucción JOIN nos permite combinar varias tablas haciendo coincidir los valores de las
columnas que nos interesen. Es decir, si tenemos dos tablas 1 y 2 que contienen una (o más)
columnas con el mismo nombre, podemos relacionar ambas tablas por la columna del mismo
nombre.
Acá debemos tener en cuenta que cada registro de la columna en la tabla 1 que también esté en
la columna de la tabla 2, obtendremos una relación. Lo que quiere decir que se produce un
producto cartesiano de cada valor de la columna de la tabla 1, por todos los valores coincidentes
de la columna en la tabla 2.”
Lo cual se quiere indicar es que esta instrucción nos permite relacionar las tablas entre si. Sin
haber confusiones o redundancias en el contenido, ya que se tiene que llegar a describir
cuidadosamente la tabla o también ponerle un nombre o sigla particular con el fin de poder
identificarla de una manera más eficaz.
En las bases de datos continuamente estamos ingresando datos, modificándolos y también
solicitando reportes del contenido o informes; por lo que de no contar con una instrucción como
JOIN, sería muy complicado o trabajoso realizar este tipo de combinaciones de tablas y su
contenido. Por lo tanto, lo usaría en todos las bases de datos que necesite conjugar tablas y su
contenido.
Ejemplo: Se debe usar.
SELECT *
FROM tabla1 INNER JOIN tabla2 USING (id) INNER JOIN tabla3 USING(id);
INNER JOIN hace que la consulta devuelva todos los campos de Tabla1 que coincidan en el o
los campos listados en el USING ().
- Esta cláusula requiere que los campos comparados tengan el mismo nombre en ambas
tablas.
- Si los campos no tienen el mismo nombre, se debe especificar campo por campo de esta forma:
Código sql:
SELECT *
FROM tabla1 t1
INNER JOIN tabla2 t2 ON t1.id = t2.id
INNER JOIN tabla3 t3 ON t1.id = t3.id;

- Si deben concidir más de un campo se usa también la cláusula AND:


Código sql:

SELECT *
FROM tabla1 t1
INNER JOIN tabla2 t2 ON t1.id = t2.id AND t1.campo2 = t2.campo3
INNER JOIN tabla3 t3 ON t1.id = t3.id;
Bibliografía

[Contenidos semana 6, Fundamentos de bases de datos, IACC 2018.]

Vous aimerez peut-être aussi