..


Sponsede Lenker

Slett disse tabellene bruker BLI

Artikkel skrevet av Max Bossi

I denne korte artikkelen vil vi se hvordan spørringen kan slette (DELETE) utnytte potensialet i JOIN, dvs. å skape relasjoner mellom tabeller i MySQL.
Faktisk har vi allerede sett hvordan å bruke delta i valg av data (SELECT) og blir oppdatert (UPDATE) her vil vi bare forlenge det som allerede er lært.

For bedre å lære potensialet i denne teknikken bør vurdere, som vår wont, antar et tilfelle av bruk.

La oss si at vi har å jobbe med en database med en hypotetisk lageret består av følgende tabeller (som beskriver deres struktur):

  • hyller
    • id (int)
    • beskrivelse (VARCHAR)
  • hyller
    • id (int)
    • scaffale_id (int)
    • beskrivelse (VARCHAR)
  • produkter
    • id (int)
    • ripiano_id (int)
    • navn (varchar)
    • pris (float)
Nå antar du har behov for å eliminere produktene. Vi adressere følgende tre ulike utfall.

1) Anta at du vil slette et enkelt produkt som du vet ID. I dette tilfellet kan du bare kjøre en triviell spørring:

 



 DELETE * FROM produkter Hvor id = 1;

 
2) Det samme spørringen vil brukes hvis du ønsker å slette alle produkter presset inn et gitt hylle:
 



 DELETE * FROM produkter Hvor ripiano_id = 1;

 
3) Men hvis du ønsker å slette alle de produktene som finnes i hyllen?
En enkel spørring slik som de har sett tidligere ikke ville være mulig fordi i "produktene" det er ikke noe felt som refererer sokkelen!

Egentlig problemet er ikke uoverkommelig! med litt "fingerferdighet i håndtering av spørringer, faktisk er den hindringen lett omgått! Hvordan? med en BLI MED! Her er et eksempel:

 



 DELETE produkter .*







 FRA produkter INNER JOIN hyllene







 ON = prodotti.ripiano_id ripiani.id







 HVOR ripiani.scaffale_id = 1;



Ved å gjøre det skapte vi en relasjon mellom to tabeller "produkter" og "hyller" (basert på feltet Bli med "ripiano_id" i den første tabellen som samsvarer med andre identifikator) for å utnytte feltet "scaffale_id" av denne " siste.

Ved første øyekast kanskje kan virke litt komplisert ... er faktisk ganske enkelt. Det handler om å skape en logisk relasjon mellom to tabeller for å bruke informasjon til å operere den første av de andre.

Hvis det i tillegg til produkter, ønsket vi å fjerne alle hyllene tilsvarer den gitte sokkelen pututo vi bruker en litt annen spørring:

 



 DELETE produkter .*, hyller .*







 FRA produkter INNER JOIN hyllene







 ON = prodotti.ripiano_id ripiani.id







 HVOR ripiani.scaffale_id = 1;



I hovedsak er det utsikt rett over spørring med den eneste forskjellen er at kanselleringen vil påvirke ikke bare de feltene i tabellen "produkter":
 



 produkter .*

 
men også de av bordet "hyller":
 



 hyller .*

 
For spørsmål eller forespørsler inviterer jeg deg til å legge ut på våre fora .

I samme kategori ...
E-læring
MS Access (avansert) MS Access (avansert)
Lær å opprette og administrere databaser raskt og enkelt. Starter fra 29 €.
MySQL (Course) MySQL (Course)
Forvaltning av open-source database. Fra € 39.
SQL og Database (Course) SQL og Database (Course)
Opprette og administrere relasjonsdatabaser. Fra € 39.
Sponsede Lenker