Diferència entre revisions de la pàgina «Modificant les dades: insert, update, delete»
m |
|||
| Línia 11: | Línia 11: | ||
bash-4.4# | bash-4.4# | ||
| − | # cd /etc | + | bash-4.4# cd /etc |
| − | # ls HR.sql | + | bash-4.4# ls HR.sql |
</pre> | </pre> | ||
El primer que hem de fer és entrar amb un editor de text (''nano'') al script HR.sql, i comentar les dues primeres línies: | El primer que hem de fer és entrar amb un editor de text (''nano'') al script HR.sql, i comentar les dues primeres línies: | ||
<pre> | <pre> | ||
| − | # nano HR.sql | + | bash-4.4# nano HR.sql |
| + | |||
#CREATE DATABASE HR CHARACTER SET utf8 COLLATE utf8_general_ci; | #CREATE DATABASE HR CHARACTER SET utf8 COLLATE utf8_general_ci; | ||
#use HR; | #use HR; | ||
</pre> | </pre> | ||
| + | '''NOTA''': el caràcter coixinet (#) és un comentari. | ||
| + | |||
Mira quin és el contingut del script: veuràs fàcilment tots els ''creates'' i els ''inserts''. | Mira quin és el contingut del script: veuràs fàcilment tots els ''creates'' i els ''inserts''. | ||
Revisió del 09:37, 1 des 2021
Contingut
Introducció
És la secció 11 que estem seguint del tutorial:
Previ: regeneració de les dades de la base de dades HR
Dins del docker tenim el script /etc/HR.sql que és l'estructura i les dades de la nostra base de dades. Per executar aquest script i regenerar les dades ho podem fer de dues maneres: des de la consola, i des de dins del mysql
Entrem a la consola del docker:
$ docker exec -it mysql_m02bd /bin/bash bash-4.4# bash-4.4# cd /etc bash-4.4# ls HR.sql
El primer que hem de fer és entrar amb un editor de text (nano) al script HR.sql, i comentar les dues primeres línies:
bash-4.4# nano HR.sql #CREATE DATABASE HR CHARACTER SET utf8 COLLATE utf8_general_ci; #use HR;
NOTA: el caràcter coixinet (#) és un comentari.
Mira quin és el contingut del script: veuràs fàcilment tots els creates i els inserts.
I ara ja podem executar el script:
# mysql -u alumne -pkeiL2lai HR -f < /etc/HR.sql > /etc/control_errors.log 2>&1 # cat control_errors.log
La segona manera de fer-ho:
$ docker exec -it mysql_m02bd mysql -u alumne -pkeiL2lai HR mysql> \. /etc/HR.sql o bé mysql> source /etc/HR.sql
Per tant, podem potinejar amb les dades tant com vulguem, que sempre podrem regenerar la base de dades. I com a última solució, recorda que sempre et pots tornar a descarregar el docker.
Insert (todo)
INSERT INTO dependents( first_name, last_name, relationship, employee_id) VALUES ( 'Dustin', 'Johnson', 'Child', 178 ); # comprovació: SELECT * FROM dependents WHERE employee_id = 178; INSERT INTO dependents( first_name, last_name, relationship, employee_id) VALUES ( 'Cameron', 'Bell', 'Child', 192 ), ( 'Michelle', 'Bell', 'Child', 192 ); SELECT * FROM dependents WHERE employee_id = 192; Per tal de fer-ho necessitem la taula dependents_archive que tingui la mateixa estructura que dependents. (fer-ho) INSERT INTO dependents_archive SELECT * FROM dependents;
Update (todo)
UPDATE employees SET last_name = 'Lopez' WHERE employee_id = 192; # comprovació: SELECT employee_id, first_name, last_name FROM employees WHERE employee_id = 192; UPDATE dependents SET last_name = 'Lopez' WHERE employee_id = 192; # fem un update amb una subquery UPDATE dependents SET last_name = ( SELECT last_name FROM employees WHERE employee_id = dependents.employee_id);
Delete (todo)
# comprovació: SELECT count(*) FROM dependents WHERE dependent_id = 16; DELETE FROM dependents WHERE dependent_id = 16; # comprovació: SELECT count(*) FROM dependents WHERE dependent_id = 16; DELETE FROM dependents WHERE employee_id IN(100 , 101, 102); DELETE FROM employees WHERE employee_id = 192; DELETE FROM dependents WHERE employee_id = 192;
foreign key constraint
creat per Joan Quintana Compte, desembre 2021