Practicas

https://www.dropbox.com/home?select=biblioteca.sql
Trabajo propuesto para esta semana
Direccion drobox:
https://www.dropbox.com/s/x9h2jts3w4y9gjg/institucioneducativa.sql?dl=0

Milena Giraldo  vergara y Javier Mesa Roldan

consultas relacionales

Taller
1.Consultar el precio de los libros de redes y bases de datos
2.Consultar los libros que pertenezcan a la materia de contabiidad, y el nombre del autor del libro y las editoriales que tienen a su cargo lo publicacion del libro
3.Sumar los precios de los libros cuyo numero de paginas sea menor de 180
4.consultar los nombres de los libros que esten en la editorial Mc Graw hill"
5.Consultar los libros cuyo nombre comiencen en e o terminen en a
6.Actualizar el nombre del libro calculo 2 por calculo diferencial
7.Muestre los registros de los libros de diagramacion y redes y administracion en una pagina
8.consultar el libro que tiene el menor numero de paginas
9.consultar el libro que tiene mayor precio
10.Consultar el promedio del precio de los libros
11.Modificar la Tabla editorial el campo nombre por descripcion
12.Consultar los libros que estan en la editorial aveja negra
13.Consultar quien es el autor(es) del libro base de datos2 y que editorial o editoriales publico este libro
analisis
comando
que tengo que hacer

 punto 1
Consultar el precio de los libros de redes y bases de datos
Analisis
Que deseamos mostrar
( libro.descripcion, libro.precio)

*Tablas involucradas( libro)
*Condiciones en particular(precio de libros de redes y base de datos)

mysql> select precio,descripcion from libro where descripcion='Redes' or descripcion='BD ll';
+--------+-------------+
| precio | descripcion |
+--------+-------------+
|  65000 | BD ll       |
|  32500 | Redes       |
+--------+-------------+
2 rows in set (0.00 sec)
punto 2
 Consultar los libros que pertenezcan a la materia de contabiidad, y el nombre del autor del libro y las editoriales que tienen a su cargo lo publicacion del libro
Analisis
*Que deseamos mostrar
( liautedi.idlibro, libro.descripcion, autor.nombre, liautedi.codedit, editorial.descri
cion)
*Tablas involucradas( libro,liautedi,autor,editorial)
*Condiciones en particular(libro que pertenezcan a la materia de contabilidad)
*como se relaciona las tablas(editorial.codedit=liautedi.codedit,liautedi.idlibro=libro.idlibro)

mysql> select liautedi.idlibro, libro.descripcion, autor.nombre, liautedi.codedit, editorial.descri
cion from libro,autor, editorial,liautedi where libro.descripcion='Contabilidad' and libro.idlibro=
iautedi.idlibro and liautedi.codedit=editorial.codedit;
+---------+--------------+----------------------+---------+-------------+
| idlibro | descripcion  | nombre               | codedit | descripcion |
+---------+--------------+----------------------+---------+-------------+
| L06     | Contabilidad | Luis Joyanes         | E02     | Norma       |
| L06     | Contabilidad | Jorge Vasquez Posada | E02     | Norma       |
| L06     | Contabilidad | Jhon Soars           | E02     | Norma       |
| L06     | Contabilidad | Riaz Khadem          | E02     | Norma       |
| L06     | Contabilidad | Robert Lorber        | E02     | Norma       |
| L06     | Contabilidad | Mario Dream          | E02     | Norma       |
+---------+--------------+----------------------+---------+-------------+
6 rows in set (0.36 sec)

mysql>

punto 3
Sumar los precios de los libros cuyo numero de paginas sea menor de 180
Analisis.
*Que deseamos mostrar
(libro.idlibro,libro.descripcion, libro.precio, libro.nropaginas, suma)

*Tablas involucradas( libro)
*Condiciones en particular(libro pag>180)
mysql> select idlibro, descripcion,precio,nropagina  from libro where nropagina<180
+---------+---------------------+--------+-----------+
| idlibro | descripcion         | precio | nropagina |
+---------+---------------------+--------+-----------+
| L01     | Calculo ll          |  55000 |       120 |
| L02     | BD ll               |  65000 |       150 |
| L05     | Admon en una pagina |   7500 |        70 |
| L06     | Contabilidad        |  25700 |       170 |
| L08     | Diagramacion        |  45000 |        85 |
+---------+---------------------+--------+-----------+
5 rows in set (0.00 sec)

mysql>

mysql> select  sum(precio) from libro where nropagina<180;
+-------------+
| sum(precio) |
+-------------+
|      198200 |
+-------------+
1 row in set (0.00 sec)

punto 4
consultar los nombres de los libros que esten en la editorial Mc Graw hill"
Analisis
*.Que deseamos mostrar
( libro.descripcion, liautedi.idlibro, liautedi.codedit editorial.nombre)


*Tablas involucradas( libro,codedit,nombre)
*Condiciones en particular(libros que esten en la editorial "Mc Graw hill")
*como se relaciona las tablas(editorial.codedit=liautedi.codedit,liautedi.idlibro=libro,idlibro)

mysql> select liautedi.idlibro,libro.descripcion,liautedi.codedit,editorial.nombre from libro,editor
ial,liautedi where editorial.nombre="Mc Graw Hill" and  libro.idlibro=liautedi.idlibro and editorial
.codedit=liautedi.codedit;
+---------+-------------+---------+--------------+
| idlibro | descripcion | codedit | nombre       |
+---------+-------------+---------+--------------+
| L02     | BD ll       | E03     | Mc Graw Hill |
| L07     | Redes       | E03     | Mc Graw Hill |
| L04     | Ingles      | E03     | Mc Graw Hill |
+---------+-------------+---------+--------------+
3 rows in set (0.00 sec)

mysql>

punto 5
5 Consultar los libros cuyo nombre comiencen en e o terminen en a
Analisis
*.Que deseamos mostrar
( libro todos los registros)
*Tablas involucradas( libro)
*Condiciones en particular(Descripcion de libro que termine en a y empiece en e)

mysql> select * from libro where descripcion like'e%' or descripcion like '%a';
+---------+---------------------+-----------+--------+-----------+
| idlibro | descripcion         | nropagina | precio | codigomat |
+---------+---------------------+-----------+--------+-----------+
| L03     | Estructura de datos |       180 |  85000 | M03       |
| L05     | Admon en una pagina |        70 |   7500 | M05       |
+---------+---------------------+-----------+--------+-----------+
2 rows in set (0.00 sec)

mysql>

6 Punto
Actualizar el nombre del libro calculo 2 por calculo diferencial
Analisis
*.Que deseamos mostrar
el cambio de nombre del libro
*Tablas involucradas( libro)
mysql> select * from libro;
+---------+---------------------+-----------+--------+-----------+
| idlibro | descripcion         | nropagina | precio | codigomat |
+---------+---------------------+-----------+--------+-----------+
| L01     | Calculo ll          |       120 |  55000 | M01       |
| L02     | BD ll               |       150 |  65000 | M09       |
| L03     | Estructura de datos |       180 |  85000 | M03       |
| L04     | Ingles              |       280 | 105000 | M04       |
| L05     | Admon en una pagina |        70 |   7500 | M05       |
| L06     | Contabilidad        |       170 |  25700 | M06       |
| L07     | Redes               |       370 |  32500 | M07       |
| L08     | Diagramacion        |        85 |  45000 | M08       |
+---------+---------------------+-----------+--------+-----------+
8 rows in set (0.00 sec)

mysql> update libro set descripcion ='calculo diferencial' where idlibro='L01';
Query OK, 1 row affected (0.34 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from libro;
+---------+---------------------+-----------+--------+-----------+
| idlibro | descripcion         | nropagina | precio | codigomat |
+---------+---------------------+-----------+--------+-----------+
| L01     | calculo diferencial |       120 |  55000 | M01       |
| L02     | BD ll               |       150 |  65000 | M09       |
| L03     | Estructura de datos |       180 |  85000 | M03       |
| L04     | Ingles              |       280 | 105000 | M04       |
| L05     | Admon en una pagina |        70 |   7500 | M05       |
| L06     | Contabilidad        |       170 |  25700 | M06       |
| L07     | Redes               |       370 |  32500 | M07       |
| L08     | Diagramacion        |        85 |  45000 | M08       |
+---------+---------------------+-----------+--------+-----------+
8 rows in set (0.00 sec)

mysql>

punto 7
Muestre los registros de los libros de diagramacion y redes y administracion en una pagina
Analisis
*.Que deseamos mostrar
( registros de tabla libro
*Tablas involucradas( libro)
*Condiciones en particular(registros de los libros diagramacion, redes y administracion en una pagiana)


mysql> select * from libro where libro.descripcion='Diagramacion' or libro.descripcion='Redes' or li
bro.descripcion='Admon en una Pagina';
+---------+---------------------+-----------+--------+-----------+
| idlibro | descripcion         | nropagina | precio | codigomat |
+---------+---------------------+-----------+--------+-----------+
| L05     | Admon en una pagina |        70 |   7500 | M05       |
| L07     | Redes               |       370 |  32500 | M07       |
| L08     | Diagramacion        |        85 |  45000 | M08       |
+---------+---------------------+-----------+--------+-----------+
3 rows in set (0.00 sec)
punto 8
consultar el libro que tiene el menor numero de paginas
Analisis
*Que deseamos mostrar
(libro.idlibro, libro.nropagina, libro.descripcion)
*Tablas involucradas( libro)
*Condiciones en particular(libro que tiene el menor numero de paginas)

mysql> select descripcion, idlibro,min(nropagina)from libro group by descripcion, idlibro;
+---------------------+---------+----------------+
| descripcion         | idlibro | min(nropagina) |
+---------------------+---------+----------------+
| Admon en una pagina | L05     |             70 |
| BD ll               | L02     |            150 |
| calculo diferencial | L01     |            120 |
| Contabilidad        | L06     |            170 |
| Diagramacion        | L08     |             85 |
| Estructura de datos | L03     |            180 |
| Ingles              | L04     |            280 |
| Redes               | L07     |            370 |
+---------------------+---------+----------------+
8 rows in set (0.00 sec)

mysql> select descripcion, idlibro,min(nropagina)from libro  descripcion, idlibro;
ERROR 1146 (42S02): Table 'libreria.idlibro' doesn't exist
mysql> select descripcion, idlibro,min(nropagina)from libro;
+---------------------+---------+----------------+
| descripcion         | idlibro | min(nropagina) |
+---------------------+---------+----------------+
| calculo diferencial | L01     |             70 |
+---------------------+---------+----------------+
1 row in set (0.00 sec)
 
punto 9
consultar el libro que tiene mayor precio
Analisis
*Que deseamos mostrar
(libro.idlibro, libro.precio, libro.descripcion)
*Tablas involucradas( libro)
*Condiciones en particular(libro que tiene el mayor precio)

mysql> select max(precio)from libro;
+-------------+
| max(precio) |
+-------------+
|      105000 |
+-------------+
1 row in set (0.00 sec)

mysql> select descripcion, idlibro,max(precio) from libro;
+---------------------+---------+-------------+
| descripcion         | idlibro | max(precio) |
+---------------------+---------+-------------+
| calculo diferencial | L01     |      105000 |
+---------------------+---------+-------------+
1 row in set (0.00 sec)

mysql> select descripcion, idlibro,max(precio)from libro group by descripcion, idlibro;
+---------------------+---------+-------------+
| descripcion         | idlibro | max(precio) |
+---------------------+---------+-------------+
| Admon en una pagina | L05     |        7500 |
| BD ll               | L02     |       65000 |
| calculo diferencial | L01     |       55000 |
| Contabilidad        | L06     |       25700 |
| Diagramacion        | L08     |       45000 |
| Estructura de datos | L03     |       85000 |
| Ingles              | L04     |      105000 |
| Redes               | L07     |       32500 |
+---------------------+---------+-------------+
8 rows in set (0.00 sec)

mysql>

punto 10
Consultar el promedio del precio de los libros
Analisis
*Que deseamos mostrar
(promedio del precio de los libros)
*Tablas involucradas( libro)
*Condiciones en particular(ninguna)
mysql> select avg(precio) from libro;
+-------------+
| avg(precio) |
+-------------+
|  52587.5000 |
+-------------+
1 row in set (0.00 sec)

punto 11
Modificar la Tabla editorial el campo nombre por descripcion
Analisis
*Que deseamos mostrar
(actualizar el campo nombre de la tabla editorial por descripcion)
*Tablas involucradas( editorial)
*Condiciones en particular(ninguna)

mysql> alter table editorial change nombre descripcion char(30)not null;
Query OK, 0 rows affected (0.14 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select * from editorial;
+---------+--------------+
| codedit | descripcion  |
+---------+--------------+
| E01     | Oveja Negra  |
| E02     | Norma        |
| E03     | Mc Graw Hill |
+---------+--------------+
3 rows in set (0.03 sec)

Punto 12
Consultar los libros que estan en la editorial Oveja negra
Analisis
*.Que deseamos mostrar
( libro.descripcion, liautedi.idlibro, liautedi.codedit editorial.nombre)
*Tablas involucradas( libro,codedit,nombre)
*Condiciones en particular(libros que esten en la editorial "Oveja Negra")
*como se relaciona las tablas(editorial.codedit=liautedi.codedit,liautedi.idlibro=libro,idlibro)

mysql> select liautedi.idlibro,libro.descripcion,liautedi.codedit,editorial.descripcion from libro,l
iautedi, editorial where editorial.descripcion='Oveja Negra' and libro.idlibro=liautedi.idlibro and
editorial.codedit=liautedi.codedit;
+---------+-------------+---------+-------------+
| idlibro | descripcion | codedit | descripcion |
+---------+-------------+---------+-------------+
| L02     | BD ll       | E01     | Oveja Negra |
| L04     | Ingles      | E01     | Oveja Negra |
+---------+-------------+---------+-------------+
2 rows in set (0.30 sec)

mysql>
Punto 13
Consultar quien es el autor(es) del libro base de datos2 y que editorial o editoriales publico este libro
Analisis
.Que deseamos mostrar
( Autor.nombre, libro.descripcion, liautedi.codedit, liautedi.codedit,liautedi.cadautor editorial.descripcion)


*Tablas involucradas( libro,liautedi,autor)
*Condiciones en particular(libro que sea base de datos2)
*como se relaciona las tablas(editorial.codedit=liautedi.codedit,liautedi.cadautor=autor.cadautor)

mysql> select libro.descripcion, liautedi.cadautor, autor.nombre, liautedi.codedit, editorial.descri
pcion from libro,liautedi, autor, editorial where libro.descripcion='BD ll' and editorial.codedit=li
autedi.codedit and  liautedi.cadautor=autor.cadautor;
+-------------+----------+----------------------+---------+--------------+
| descripcion | cadautor | nombre               | codedit | descripcion  |
+-------------+----------+----------------------+---------+--------------+
| BD ll       | A01      | Luis Joyanes         | E01     | Oveja Negra  |
| BD ll       | A04      | Riaz Khadem          | E01     | Oveja Negra  |
| BD ll       | A02      | Jorge Vasquez Posada | E02     | Norma        |
| BD ll       | A04      | Riaz Khadem          | E02     | Norma        |
| BD ll       | A05      | Robert Lorber        | E03     | Mc Graw Hill |
| BD ll       | A05      | Robert Lorber        | E03     | Mc Graw Hill |
| BD ll       | A04      | Riaz Khadem          | E03     | Mc Graw Hill |
+-------------+----------+----------------------+---------+--------------+
7 rows in set (0.00 sec)