Pr. Scripts SQL. Els dos móns: host i docker

De wikijoan
Salta a la navegació Salta a la cerca

Introducció

Ja tenim instal·lat el docker, i concretament tenim disponible la base de dades langtrainer.

Els objectius d'aquesta pràctica són:

  1. continuar treballant amb els INNER JOINS (tens el qüestionari per practicar INNER JOINS III i IV)
  2. treballar la sessió de consola dins del docker
  3. editar fitxers en local, enviar-los al docker, executar-los en el docker, i tornar a enviar de tornada els resultats al local.

Desenvolupament

1a part

En una sessió dins el docker proposaràs les selects que has de respondre (que són les selects dels qüestionaris III i IV de INNER JOINS, corresponents a les bases de dades vestuari i langtrainer). Guarda les selects en un fitxer.

2a part

NOTA: el prompt (símbol) $ són les comandes que s'executen en la màquina host, i el prompt # són les comandes que s'executen dins del docker.

Dins del teu directori de treball, crea el script sessio_langtrainer.sql que contindrà les comandes que vol executar. Estàs treballant amb un editor de text en la teva màquina host. Utilitzaràs un editor de text pla. Aquest script el copiaràs (l'enviaràs) al contenidor:

$ cd DAM_M02_2122/UF2/UF2A2/
$ docker cp sessio_langtrainer.sql mysql_m02bd:/etc/sessio_langtrainer.sql

I dins del contenidor ja pots executar aquest script a la base de dades langtrainer:

bash-4.4# mysql -u alumne -pkeiL2lai --verbose langtrainer < /etc/sessio_langtrainer.sql > /etc/sortida_langtrainer.txt
bash-4.4# cat /etc/sortida_langtrainer.txt

En el fitxer sortida_langtrainer.txt tenim la sortida de les diferents consultes.

I ara enviem el fitxer sortida_langtrainer.txt al nostre ordinador host:

$ docker cp mysql_m02bd:/etc/sortida_langtrainer.txt .

(el punt final és important, és el destí, el directori actual on copiaràs el fitxer).

I ja el podem penjar al Classroom com a evidència de la pràctica

NOTA: si en el fitxer sortida_langtrainer.txt vols que surti també l'enunciat del problema, posarem dins el fitxer sql:

# 1. Trobar les paraules que comencin per... (comentari)
system echo "1. Trobar les paraules que comencin per..." (aquesta línia s'imprimirà)

Tasques

Qüestionari vestuari

Crea el script sessio_vestuari.sql, on posaràs els enunciats com a comentaris i proposaràs la solució als enunciats següents:

1. Anem a navegar des de la taula OBRA fins a la taula VESTUARI. Quin és el id de l'obra La Caputxeta Vermella 2018?

2. Quins són els personatges que surten en l'obra 1? (id_pers, personatge)

3. Quina és la referència dels vestits que utilitza el personatge 4?

4. Quins vestits utilitza el personatge 4 (utilitza IN a partir dels resultats anteriors)

5. I ara ja podem fer INNER JOINS. Llistar els personatges que surten en les obres (obra, pers, rol)

6. Llistar tot el vestuari que surt en l'obra de la Caputxeta del 2021, ordenat per id_loc (id_loc, vestuari, pers)

7. Llistar tot el vestuari que surt en l'obra de la Caputxeta del 2021, ordenat per id_loc (id_loc, vestuari, pers). Utilitzar USING

8. Llistar tot el vestuari que surt en l'obra de la Caputxeta del 2021, ordenat per id_loc (id_loc, vestuari, pers). No utilitzar INNER JOIN (sintaxi implícita, prèvia a SQL-92)

10. Llistar tot el vestuari que surt en l'obra de la Caputxeta del 2021, ordenat per id_loc (hab, loc, vestuari, pers)

11. Llistar tot el vestuari que surt en l'obra de la Caputxeta del 2021, ordenat per id_loc (hab, loc, vestuari, pers). Utilitzar USING.

12. Llistar tot el vestuari que surt en l'obra de la Caputxeta del 2021, ordenat per id_loc (hab, loc, vestuari, pers). No utilitzar INNER JOIN (sintaxi implícita, prèvia a SQL-92)

13. Creuar les taules CATEGORIA i AMBIENTACIO per trobar les sabates (categoria=sabates) que pertanyen a l'ambientació urbana (categoria, ambientació, vestuari, id_loc)

14. On són les botes catiusques roses? (hab, loc, tipus, vestuari)

Executa el script en el contenidor tal com es proposa a la pràctica. Obtindràs el fitxer sortida_vestuari.txt amb els resultats de les consultes.

Qüestionari langtrainer

Crea el script sessio_langtrainer.sql, on posaràs els enunciats com a comentaris i proposaràs la solució als enunciats següents:

1. executar show tables

2. executar describe WORD

3. paraules que comencen per w (i les seves traduccions), ordenat per paraula i traducció (sense utilitzar inner join, tal com es feia

4. paraules que comencen per y (i les seves traduccions), ordenat per paraula i traducció (amb inner join, SQL 92):

5. Paraules (i la traducció) de l'usuari 1 del 2020

6. Paraules angleses (i la traducció) de l'usuari admin del 2020

7. Paraules franceses (i que la traducció sigui catalana) de l'usuari admin

8. acrònims (TRANSLATION.type='ac') en llengua anglesa (i el seu significat)

Executa el script en el contenidor tal com es proposa a la pràctica. Obtindràs el fitxer sortida_langtrainer.txt amb els resultats de les consultes.

Entrega

Entregaràs al classroom els fitxers sortida_vestuari.txt i sortida_langtrainer.txt que has generat en el docker, i que és l'evidència de què has realitzat la tasca.


creat per Joan Quintana Compte, novembre 2021