..


Enllaços patrocinats

Eliminar les taules amb UNEIX-TE

Article escrit per Max Bossi

En aquest breu article veurem com la consulta es pot eliminar (DELETE) aprofitar el potencial de JOIN, és a dir, la creació de relacions entre les taules de MySQL.
De fet ja hem vist com utilitzar la combinació en la selecció de dades (SELECT) i actualitzant (UPDATE) aquí només s'estendrà el que ja va aprendre.

Per a millor conèixer el potencial d'aquesta tècnica ha de considerar, com la nostra costum, assumir un cas d'ús.

Diguem que hem de treballar sobre una base de dades d'un magatzem hipotètic es compon dels següents quadres (dels quals descriuen la seva estructura):

  • prestatges
    • id (int)
    • descripció (VARCHAR)
  • prestatges
    • id (int)
    • scaffale_id (int)
    • descripció (VARCHAR)
  • productes
    • id (int)
    • ripiano_id (int)
    • nom (VARCHAR)
    • preu (float)
Ara suposem que vostè té la necessitat d'eliminar els productes. Ens dirigim als següents tres resultats diferents.

1) Suposem que es vol eliminar un producte únic que es coneix la identificació. En aquest cas, només pot executar una consulta trivial:

 



 DELETE * FROM Productes WHERE id = 1;

 
2) La mateixa consulta es pot utilitzar si voleu eliminar tots els productes amuntegats en un prestatge determinat:
 



 DELETE * FROM Productes WHERE ripiano_id = 1;

 
3) No obstant això, si voleu eliminar tots els productes presents a la plataforma?
Una simple consulta, com els vistos anteriorment no era possible a causa que en els "productes" no hi ha cap camp que fa referència a la plataforma!

En realitat el problema no és insuperable! amb una mica de destresa en el maneig de consultes, de fet, l'obstacle és fàcil d'eludir! Com? amb una combinació! Heus aquí un exemple:

 



 DELETE productes .*







 Dels prestatges de productes INNER JOIN







 ON = prodotti.ripiano_id ripiani.id







 ON ripiani.scaffale_id = 1;



En fer-ho hem creat una relació entre dues taules "productes" i "prestatges" (basat en el camp de JOIN "ripiano_id" a la primera taula que coincideix amb el segon identificador) per tal d'explotar el camp "scaffale_id" d'aquesta " passat.

A primera vista, potser, pot semblar una mica complicat ... en realitat és bastant simple. Es tracta de crear una relació lògica entre dues taules per tal d'utilitzar la informació per operar el primer de la segona.

Si, a més dels productes, que volia eliminar tots els prestatges corresponents a la pututo útil atès que utilitza una consulta poc diferent:

 



 DELETE productes .*, prestatgeries .*







 Dels prestatges de productes INNER JOIN







 ON = prodotti.ripiano_id ripiani.id







 ON ripiani.scaffale_id = 1;



En essència, és el punt de vista just per sobre de consulta amb l'única diferència que la cancel · lació afectarà no només als camps de la taula "productes":
 



 productes .*

 
sinó també els de la taula "prestatges":
 



 prestatges .*

 
Per preguntes o sol · licituds d'E convidem a publicar en els nostres fòrums .

A la mateixa categoria ...
E-Learning
MS Curs d'Accés MS Curs d'Accés
Aprendre a crear i gestionar bases de dades fàcil i ràpidament. A partir de 29 €.
Curs de MySQL Curs de MySQL
Gestió de base de dades de codi obert. A partir de 39 €.
Curs de Base de Dades i SQL Curs de Base de Dades i SQL
Creació i gestió de bases de dades relacionals. A partir de 39 €.
Enllaços patrocinats