Slet vs. Drop
Både Delete- og Drop-kommandoer tilhører SQL-sætninger (Structured Query Language), og de bruges i tilfælde af fjernelse af data fra en database. Slet er en DML-kommando (Data Manipulation Language). Det sletter nogle eller alle data fra en tabel i henhold til den betingelse, som brugeren har angivet. Slet-sætning fjerner kun dataposterne i tabellen, men tabelstrukturen viser det samme i databasen. Drop-kommandoen er en DDL-sætning (Data Definition Language), og den fungerer på en anden måde end kommandoen Slet. Det er ikke en betinget baseret erklæring, så sletter hele data fra tabellen, og det fjerner også tabelstrukturen og alle referencerne til den tabel permanent fra databasen.
Slet erklæring
Som nævnt ovenfor fjerner Delete-sætning data fra en tabel baseret på den angivne betingelse, og Where-sætningen bruges sammen med Delete til at specificere denne påkrævede betingelse. Hvis Where-sætningen ikke er angivet med Delete, fjernes alle tabeldata fra tabellen. Men i Slet-operationen forbliver den eksisterende tabelstruktur den samme. Derfor behøver brugeren ikke at definere tabelstrukturen, hvis han/hun ønsker at genbruge tabellen igen. Da Delete er en DML-kommando, commiter den ikke automatisk efter udførelse. Så dette kan rulles tilbage for at fortryde den tidligere handling. Ellers bør Commit-erklæringen kaldes for at gøre ændringerne permanente. Mens Delete-sætningen udføres, registrerer den en post i transaktionsloggen for hver rækkesletning. Så dette påvirker at bremse operationen. Den tildeler heller ikke den plads, der bruges efter udførelse.
Følgende er syntaksen for Slet-sætning.
DELETE FROM
eller
DELETE FROM WHERE
Drop Statement
Drop-sætning fjerner ikke kun alle tabelposter fra databasen uden nogen betingelse, men den fjerner også tabelstrukturen, integritetsbegrænsninger, indekser og adgangsrettigheder for den relevante tabel fra databasen permanent. Så alle relationerne for andre tabeller eksisterer heller ikke længere, og information om tabellen fjernes fra dataordbogen. Så hvis brugeren ønsker at genbruge tabellen, skal han/hun definere tabelstrukturen og alle andre referencer til tabellen igen. Drop er en DDL-kommando, og efter udførelse af kommandoen kan den ikke rulles tilbage igen, fordi Drop-kommandoen bruger en automatisk forpligtelse. Derfor bør brugeren være meget forsigtig med at bruge denne kommando. Drop-sætningen kan ikke anvendes på systemtabeller, og den kan heller ikke bruges til tabeller, der har begrænsninger for fremmednøgle.
Drop-kommandoen kan ikke kun bruges til SQL-tabeller, men også til databaser, visninger og tabelkolonner, og alle data gemt i disse objekter går tabt for altid sammen med objekterne.
Følgende er den typiske syntaks for Drop-kommandoen.
DROP TABLE
Hvad er forskellen mellem Slet og slip?
1. Slet- og slip-kommandoer fjerner tabeldata fra en database.
2. Men Delete-sætning udfører betinget baseret sletning, hvorimod Drop-kommandoen sletter hele poster i tabellen.
3. Desuden fjerner Delete-sætningen kun rækkerne i tabellen, og den bevarer tabelstrukturen som den samme, hvorimod Drop-kommandoen fjerner alle data i tabellen og tabelstrukturen, og den fjerner også alle andre referencer fra databasen.
4. Slet er en DML-sætning, hvorimod Drop er en DDL-kommando. Så slet-operationen kan rulles tilbage, og den er ikke automatisk begået, mens Drop-handlingen ikke kan rulles tilbage på nogen måde, da det er en automatisk begået erklæring.
5. Drop-kommandoen kan ikke bruges på de tabeller, der er blevet refereret til af fremmednøgle-begrænsninger, hvorimod Delete-kommandoen kan bruges i stedet for det.
6. Drop-kommandoen skal bruges omhyggeligt med en god forståelse sammenlignet med Delete-sætningen i SQL-applikationer.