SQL actualitzacions
Per poder canviar dades d'un registre haurem d'utilitzar la comanda SQL UPDATE. Resumint, aquesta és:
UPDATE <nom_taula> SET <columna1>=<valor1>, <columna2>=<valor2>, etc. WHERE <condició>;
ATENCIÓ: és MOLT important que poseu correctament el WHERE. Si us equivoqueu en la condició matxacareu les dades de tota la taula, i recuperar-les pot ser impossible. Això és similar al què passa amb la comanda DELETE.
Potser val la pena que feu un vistasso a l'article de SQL transaccions per poder desfer els canvis a la base de dades en cas d'error.
Exemple 1
Anem a la base de dades que hem anomenat "<alumne>_insti" d'una sola taula (ho hem fet a l'exercici SQL taules).
$> mysql -u <usuari> -p -h <host> mysql> use <usuari>_insti; mysql> desc assignatures; mysql> select * from assignatures;
I d'aquesta manera ens sortirà una llista d'assignatures introduïdes amb el professor corresponent:
Si volem canviar el nombre d'hores que ocupa l'assignatura "Matemàmiques 2n ESO" que imparteix Pere Font caldrà un UPDATE amb una condició WHERE id_assignatura=1. Per assegurar-nos de que anem bé i de que estem modificant NOMÉS la dada que nosaltres volem, cal provar primer de tot la condició amb el WHERE:
mysql> SELECT * FROM assignatures WHERE id_assignatura=1;
Si només ens apareix l'assignatura que volem, podem procedir.
UPDATE assignatures SET hores=90 WHERE id_assignatura=1;
És clar que també es pot aplicar canvis amb condicions que no siguin una ID, ja que la ID de l'exemple pot diferir d'una base de dades a una altra. Per exemple, el cas anterior podiem modificar l'assignatura en qüestió pel nom de l'assignatura (en el WHERE):
UPDATE assignatures SET hores=90 WHERE assignatura="Matemàtiques 2n ESO";
També podriem fer un canvi pel nom del professor (WHERE professor="Jaume Font") però això podira portar-nos a un error fàcilment. Endivines quin?...
Exercici 1
Utilitzant aquesta base de dades de les assignatures, aplica les següents modificacions:
- L'assignatura d'anglès serà de 116 hores.
- Les Mates de 1r d'ESO ja no les fa la Pepi sinó en Carles Bustamante.
- Les Ciències Naturals de 1r d'ESO ara passaran a dir-se "Ciències de la Naturalesa 1r ESO".
- L'assignatura de Castellà ara es dirà "Llengua castellana 1r ESO" i la impartirà en Alfonso López.
- El català de 1r d'ESO l'impartirà en Ricard Torres i ara ocuparà 120 hores enlloc de 130.
- Visual i plàstica passarà a ocupar 90 hores.
Exemple 2
Prenem l'exemple de la base de dades de matrícules de l'institut Arxiu:Ufs.sql.
mysql> use <usuari>_ufs;
Així ja estarem a dins de la base de dades de l'institut.