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.

