Diferència entre revisions de la pàgina «SQL actualitzacions»
Línia 2: | Línia 2: | ||
Resumint, aquesta és: | Resumint, aquesta és: | ||
− | UPDATE <nom_taula> | + | '''UPDATE''' <nom_taula> |
− | SET <columna1>=<valor1>, <columna2>=<valor2>, etc. | + | '''SET''' <columna1>=<valor1>, <columna2>=<valor2>, etc. |
− | WHERE <condició>; | + | '''WHERE''' <condició>; |
<big>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.</big> | <big>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.</big> | ||
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. | 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 == | == Exemple 1 == | ||
Línia 27: | Línia 29: | ||
'''WHERE id_assignatura=1'''; | '''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, | + | É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 === | + | === Exercici 1 === |
Utilitzant aquesta base de dades de les assignatures, aplica les següents modificacions: | 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 == | == Exemple 2 == | ||
Prenem l'exemple de la base de dades de matrícules de l'institut [[Arxiu:Ufs.sql]]. | 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. |
Revisió del 11:49, 16 feb 2010
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.