Hvordan MySQL sletter med sletting av uttalelser

Hvordan MySQL sletter med sletting av uttalelser
Denne opplæringen vil diskutere hvordan du bruker MySQL Delete Clause i en Join -setning for å slette data fra flere tabeller som oppfyller den spesifiserte tilstanden.

Hensikten med denne opplæringen er å hjelpe deg med å forstå hvordan du bruker sletteklausulen sammen med Join -leddet for å fjerne data på en gang. Hvis du er ny i MySQL, bør du vurdere våre andre opplæringsprogrammer, for eksempel sammenføyninger og slipp tordene.

La oss komme i gang.

Grunnleggende bruk: Slett med indre sammenføyning

Den første slettemetoden vi vil diskutere er hvordan du bruker MySQL Delete Clause i en indre sammenføyningsuttalelse for å fjerne data fra rader som samsvarer med en annen tabell.

Den generelle syntaksen for å implementere en slik spørring vises nedenfor:

Slett TBL1, TBL2 fra TBL1 indre Bli med TBL2 på TBL1.col = tbl2.col hvor [tilstand];

La meg forsikre deg om at det er lettere enn det ser ut. La meg forklare:

Vi starter med å spesifisere tabellene vi ønsker å fjerne dataene. Tabeller er spesifisert mellom sletting og fra leddet.

I den andre delen spesifiserer vi tilstanden for de matchende radene i de angitte tabellene. For eksempel:

TBL1.col = tbl2.col

Til slutt setter vi hvor tilstanden som bestemmer radene i de spesifiserte tabellene som skal slettes.

Eksempel Bruk sak

La meg bruke et eksempel for å illustrere hvordan vi kan bruke sletteklausulen og indre sammenføyning for å fjerne rader fra flere tabeller. Tenk på spørsmålene nedenfor:

Skape skjemasamfunn;
Bruk samfunnet;
Drop Table hvis det eksisterer brukere, kontakter;
Lag tabellbrukere (
user_id int primær nøkkel auto_increment,
First_name varchar (100),
Last_name varchar (100),
State Varchar (50)
);
Lag tabellkontakter (
home_id int primær nøkkel auto_increment,
Tel Varchar (50),
adresse varchar (255)
);
Sett inn brukere (First_name, Last_name, State) Values ​​("John", "Muller", "Colorado"), ("Mary", "Jane", "California"), ("Peter", "Quill", "Ny York ");
Sett inn kontakter (tlf, adresse) verdier ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 Est Meadow, NYC ");

Når vi har slike data, kan vi illustrere hvordan du bruker slett med indre sammenføyning som vist i spørringen nedenfor:

Slett samfunnet.Brukere, samfunnet.kontakter fra samfunnet.brukere indre bli med kontakter på user_id = home_id hvor bruker_id = 3;

Spørringen over vil vise resultatet som vist nedenfor:

To rader som er berørt på 7 ms, noe som indikerer at to rader er fjernet.

Slett med venstre sammen

Den andre slettemetoden vi vil diskutere er å bruke venstre sammenføyning. Den generelle syntaksen for denne slettypen er som vist nedenfor:

Slett TBL1 fra TBL1 venstre Bli med TBL2 på TBL1.col = tbl2.col hvor tble.Col er null;

For å slette med venstre sammenføyning, spesifiserer vi bare en tabell-lignende den indre sammenføyningen der vi spesifiserte to tabeller.

Tenk på hele spørringen nedenfor:

Bruk samfunnet;
Drop Table hvis det eksisterer brukere, kontakter;
Lag tabellbrukere (
user_id int primær nøkkel auto_increment,
First_name varchar (100),
Last_name varchar (100),
State Varchar (50)
);
Lag tabellkontakter (
home_id int primær nøkkel auto_increment,
Tel Varchar (50),
adresse varchar (255)
);
Sett inn brukere (First_name, Last_name, State) Values ​​("John", "Muller", "Colorado"), ("Mary", "Jane", "California"), ("Peter", "Quill", "Ny York "), (" Mystic "," Arts "," South Carolina ");
Sett inn kontakter (tlf, adresse) verdier ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 EST Meadow NYC "), (" 843-555-0105 ", NULL);
Slett brukere fra brukere som venstre sammenkoblinger på user_id = home_id hvor adressen er null;
Velg * fra brukere;

Når vi har utført spørringen ovenfor, er brukeren hvis adresse er null etter at sammenkoblingen er slettet, og utgangsresultatet er som vist nedenfor:

Konklusjon

I denne opplæringen diskuterte vi hvordan du bruker MySQL Delete med Join -setninger for å slette data fra flere tabeller.