Diferència entre revisions de la pàgina «Modificant les dades: insert, update, delete»
(Es crea la pàgina amb «=Introducció= És la secció 11 que estem seguint del tutorial: *https://www.sqltutorial.org/ *https://www.sqltutorial.org/sql-insert/ =Previ: regeneració de les dad...».) |
|||
| Línia 4: | Línia 4: | ||
*https://www.sqltutorial.org/sql-insert/ | *https://www.sqltutorial.org/sql-insert/ | ||
=Previ: regeneració de les dades de la base de dades HR= | =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: | ||
| + | <pre> | ||
| + | $ docker exec -it mysql_m02bd /bin/bash | ||
| + | bash-4.4# | ||
| + | |||
| + | # cd /etc | ||
| + | # ls HR.sql | ||
| + | </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: | ||
| + | |||
| + | <pre> | ||
| + | # nano HR.sql | ||
| + | #CREATE DATABASE HR CHARACTER SET utf8 COLLATE utf8_general_ci; | ||
| + | #use HR; | ||
| + | </pre> | ||
| + | Mira quin és el contingut del script: veuràs fàcilment tots els ''creates'' i els ''inserts''. | ||
| + | |||
| + | I ara ja podem executar el script: | ||
| + | <pre> | ||
| + | # mysql -u alumne -pkeiL2lai HR -f < /etc/HR.sql > /etc/control_errors.log 2>&1 | ||
| + | |||
| + | # cat control_errors.log | ||
| + | </pre> | ||
| + | La segona manera de fer-ho: | ||
| + | <pre> | ||
| + | $ docker exec -it mysql_m02bd mysql -u alumne -pkeiL2lai HR | ||
| + | |||
| + | mysql> \. /etc/HR.sql | ||
| + | o bé | ||
| + | mysql> source /etc/HR.sql | ||
| + | </pre> | ||
| + | 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= | =Insert= | ||
Revisió del 09:11, 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# # cd /etc # 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:
# nano HR.sql #CREATE DATABASE HR CHARACTER SET utf8 COLLATE utf8_general_ci; #use HR;
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
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
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
# 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