Delete vs Drop
Både radera- och släpp-kommandona tillhör SQL-satser (Structured Query Language) och de används i händelse av att data tas bort från en databas. Ta bort är ett DML-kommando (Data Manipulation Language). Den raderar en del eller all data från en tabell enligt det villkor som användaren har angett. Delete-satsen tar bara bort dataposterna i tabellen, men tabellstrukturen visar samma i databasen. Drop-kommandot är en DDL-sats (Data Definition Language) och den fungerar på ett annat sätt än kommandot Delete. Det är inte ett villkorsbaserat uttalande, så tar bort hela data från tabellen, även det tar bort tabellstrukturen och alla referenser till den tabellen permanent från databasen.
Ta bort uttalande
Som nämnts ovan tar Delete-satsen bort data från en tabell baserat på det angivna villkoret, och Where-satsen används med Delete för att specificera detta obligatoriska villkor. Om Where-satsen inte anges med Delete, tas all tabelldata bort från tabellen. Men i borttagningsoperationen förblir den befintliga tabellstrukturen densamma. Därför behöver användaren inte definiera tabellstrukturen om han/hon vill återanvända tabellen igen. Eftersom Delete är ett DML-kommando commits det inte automatiskt efter körning. Så detta kan återställas för att ångra föregående operation. I annat fall bör Commit-förklaringen kallas för att göra ändringarna permanenta. Medan Delete-satsen körs, registrerar den en post i transaktionsloggen för varje radradering. Så detta påverkar att sakta ner operationen. Den avfördelar inte heller det utrymme som används efter körning.
Följande är syntaxen för Delete-satsen.
DELETE FROM
eller
DELETE FROM WHERE
Drop Statement
Drop-satsen tar inte bara bort alla tabellposter från databasen utan några villkor, utan den tar också bort tabellstrukturen, integritetsbegränsningar, index och åtkomstbehörigheter för den relevanta tabellen från databasen permanent. Så alla relationer för andra tabeller existerar inte längre, och information om tabellen tas bort från dataordlistan. Så om användaren vill återanvända tabellen måste han/hon definiera tabellstrukturen och alla andra referenser till tabellen igen. Drop är ett DDL-kommando och efter utförandet av kommandot kan det inte återställas, eftersom Drop-kommandot använder ett automatiskt åtagande. Därför bör användaren vara mycket försiktig med att använda detta kommando. Drop-satsen kan inte tillämpas på systemtabeller, och den kan inte heller användas för tabeller som har begränsningar för främmande nyckel.
Drop-kommandot kan användas inte bara för SQL-tabeller, utan också för databaser, vyer och tabellkolumner, och all data som lagras i dessa objekt går förlorad för alltid tillsammans med objekten.
Följande är den typiska syntaxen för kommandot Drop.
DROP TABLE
Vad är skillnaden mellan Radera och Släpp?
1. Radera och släpp kommandon tar bort tabelldata från en databas.
2. Men Delete-satsen utför villkorsbaserad radering, medan Drop-kommandot tar bort hela poster i tabellen.
3. Dessutom tar Delete-satsen bara bort raderna i tabellen och den bevarar tabellstrukturen som densamma, medan kommandot Drop tar bort all data i tabellen och tabellstrukturen, och det tar också bort alla andra referenser från databasen.
4. Delete är en DML-sats, medan Drop är ett DDL-kommando. Så, borttagningsoperationen kan återställas och den är inte automatisk committed, medan Drop-operationen inte kan rullas tillbaka på något sätt eftersom det är en auto committed-sats.
5. Drop-kommandot kan inte användas på tabeller som har refererats av främmande nyckelbegränsningar, medan Delete-kommandot kan användas istället för det.
6. Drop-kommandot bör användas försiktigt med en god förståelse jämfört med Delete-satsen i SQL-applikationer.