SQL actualitzacions

De Cacauet Wiki
La revisió el 08:55, 16 feb 2010 per Enric (discussió | contribucions)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Salta a la navegació Salta a la cerca

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,


Exercici

Utilitzant aquesta base de dades de les assignatures, aplica les següents modificacions:


Exemple 2

Prenem l'exemple de la base de dades de matrícules de l'institut Arxiu:Ufs.sql.