Diferència entre revisions de la pàgina «SQL esborrat»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «Per esborrar necessitarem la comanda [http://dev.mysql.com/doc/refman/5.0/en/delete.html DELETE]. '''IMPORTANT: hem de ser molt curosos amb aquesta comanda perquè podem…».)
 
 
Línia 9: Línia 9:
 
Si oblidem posar el WHERE eliminarem totes les dades de la taula.
 
Si oblidem posar el WHERE eliminarem totes les dades de la taula.
  
Quan ens cal eliminar diverses entrades d'una taula convé començar una [[SQL transaccions|transacció]] que ens ajudarà a recuperar les dades si fem alguna cosa malament.
+
Quan ens cal eliminar diverses entrades d'una taula convé [[SQL transaccions|començar una transacció]] que ens ajudarà a recuperar les dades si fem alguna cosa malament.
  
Per exemple, si tenim la taula de les assignatures vistes a l'[[SQL creacio|exercici de creació de taules], podem fer:
+
Per exemple, si tenim la taula de les assignatures vistes a l'[[SQL creacio|exercici de creació de taules]], podem fer:
  
 
  mysql> '''DELETE FROM''' assignatures '''WHERE''' id_assignatura=3;
 
  mysql> '''DELETE FROM''' assignatures '''WHERE''' id_assignatura=3;
Línia 23: Línia 23:
 
O bé totes les assignatures de 2n d'ESO:
 
O bé totes les assignatures de 2n d'ESO:
  
  mysql> DELETE FROM assignatures WHERE assignatura '''LIKE''' "%2n ESO%";
+
  mysql> DELETE FROM assignatures WHERE assignatura '''LIKE "%2n ESO%"''';

Revisió de 08:32, 2 feb 2010

Per esborrar necessitarem la comanda DELETE.

IMPORTANT: hem de ser molt curosos amb aquesta comanda perquè podem eliminar fàcilment totes les entrades d'una taula. Això succeeix si no posem la clàusula WHERE.

El format resumit seria aquest

DELETE FROM <nom_taula>
WHERE <condició>;

Si oblidem posar el WHERE eliminarem totes les dades de la taula.

Quan ens cal eliminar diverses entrades d'una taula convé començar una transacció que ens ajudarà a recuperar les dades si fem alguna cosa malament.

Per exemple, si tenim la taula de les assignatures vistes a l'exercici de creació de taules, podem fer:

mysql> DELETE FROM assignatures WHERE id_assignatura=3;

i si ens diu que OK, voldrà dir que haurem eliminat l'assignatura que té per id_assignatura el número 3.

També podem eliminar totes les assignatures de la ESO, però millor que no ho feu!

mysql> DELETE FROM assignatures WHERE titulacio="ESO";

O bé totes les assignatures de 2n d'ESO:

mysql> DELETE FROM assignatures WHERE assignatura LIKE "%2n ESO%";