Dataopprettelse og manipulering danner grunnlaget for databaser, og vi kaller det som henholdsvis DDL og DML. En DDL er en forkortelse for Data Definition Language. Det kan enten opprette eller endre datastrukturene i databasene, og de kan ikke brukes til å endre dataene som er tilstede på bordene. For eksempel har vi kommandoer som bare lager et bord med de angitte tabellattributtene, men det legger aldri noen rader i tabellen. Men en DML, Data Manipulation Language, er i stand til å legge til, slette eller endre data i tabellene. Generelt sett handler DDL-kommandoene om bordstrukturer, mens DML-kommandoene omhandler de faktiske dataene. La det være, hvorfor avviger vi bare fra emnet "Forskjell mellom trunker og slett"? Det er grunner til at vi snakket om DML og DDL. Du ville forstå det i den forrige kommende diskusjonen.
Formålet med en truncate-kommando er å slette hele tabellen. Så når du bruker en Truncate-kommando, mister du all data på bordet, og du bør være forsiktig med å bruke den. Gi oss beskjed om hvordan du bruker den.
Syntetikken av truncate:
TRUNCATE TABLE table-navn;
Her bør du angi navnet på tabellen som skal slettes på det hele. Dette sikrer at det vil være en tabell som sitter i minnet. Her er et eksempel på bruk av Truncate.
Nedenfor er 'medarbeiderbordet' og ser bare på rader med data i den.
EMP-id | EMP-navn | betegnelse |
1011 | jekk | Clerk |
1012 | Rosy | admin |
1014 | Nancy | Finansiere |
La oss nå utstede kommandoen nedenfor på medarbeiderbordet.
TRUNCATE TABLE ansatt;
Her er resultatet av syntaxen ovenfor og det er ingen data i den.
EMP-id | EMP-navn | betegnelse |
Formålet med en Slett-kommando er å fjerne de angitte radene fra tabellen. Her brukes "Hvor" -klausul her for å spesifisere radene som må slettes. Når vi ikke angir radene, vil kommandoen slette alle rader i tabellen. Bare se på syntaksen av den.
SLETT FRA ansatt;
Ovennevnte syntaks sletter alle rader fra "medarbeiderbordet". Så det resulterende tabellen vil ikke inneholde data.
SLETT FRA ansatt HVOR emp-id = 1011;
Denne setningen sletter bare en enkelt rad hvis emp-id er 1011. Så det resulterende tabellen ville være som nedenfor.
EMP-id | EMP-navn | betegnelse |
1012 | Rosy | admin |
1014 | Nancy | Finansiere |
avkorte -> fjern hele data fra tabellen -> Tabellplass er frigjort nå.
Slett -> Kopier de opprinnelige tabelldataene til Rull tilbake plass -> slett den angitte data / hele tabellen -> Tabellplassen er frigjort, men Rollback plass er fylt.
Truncate er en DDL-kommando, utløseren er ikke tillatt her. Men en Slett er en DML-kommando, utløsere er tillatt her.
Så det er forskjellene og la oss se på i tabellform.
S.No | Forskjeller i | avkorte | Slett |
1. | DDL eller DML? | Det er en DDL, og den opererer på datastrukturnivå. Andre eksempler for DDL er CREATE og ALTER. | Det er en DML-kommando, og den opererer på borddataene. DML står for Data Manipulation Language. Kommandoene som SELECT, UPDATE og INSERT er perfekte eksempler for en DML. DML står for Data Manipulation Language. |
2. | Hvordan virker det? | Så snart vi utsteder kommandoen Truncate, ser den bare etter det angitte tabellen. Deretter fjerner det hele dataene fra minnet. | Her kopieres de opprinnelige tabelldataene til plass som kalles 'Rull tilbake' -rom før du gjør den faktiske datamanipuleringen. Deretter gjøres endringene på den faktiske tabelldatarommet. |
3. | Rollback | Kommandoen Truncate bruker aldri rulleplass og vi kunne ikke komme tilbake til de opprinnelige dataene. En tilbakestillingsplass er en eksklusiv og er opptatt når DML-kommandoene utstedes. | Slett-kommandoen bruker rulleplass og vi kan bare enten bruke "Commit" eller "Rollback" for å godta eller avbryte endringene.
|
4. | Triggers | Truncate er en DDL-kommando, utløsere er ikke tillatt. | Slett er en DML-kommando, utløsere er tillatt her.
|
5. | Som er raskere? | Det kan fjerne alle dataene, og det er ikke nødvendig å sjekke om noen matchende forhold. Også de opprinnelige dataene kopieres ikke til tilbakestillingsområdet, og dette sparer mye tid. Disse to faktorene gjør Truncate arbeid raskere enn Slett.
| Den bruker tilbaketrekningsområdet, og alltid må de opprinnelige dataene beholdes på den. Dette er en ekstra byrde, og i sin tur tar det mye tid enn Truncate. |
6. | Kan vi bruke WHERE-setningen? | Som Truncate ser aldri etter matchende forhold, og det fjerner bare alle rader, vi kunne ikke bruke en "Where" -klausul her. | Men vi kunne alltid spesifisere tilstanden ved hjelp av "hvor" -klausulen i kommandoen Slett. |
7. | Som har mer plass? | Den trunkate skal ikke bruke rullingsplassen og det sparer det minnet. | Den trenger en sikkerhetskopiering i form av tilbakestillingsplass og dermed krever det mer minneplass enn avkortet. |
Å vite forskjellene mellom noen to enheter utvider kunnskapen om begge deler! Du har landet på en riktig vei, det vil si nettsiden for å forstå forskjellene, spesielt mellom trunkate og delete kommandoer. Håper du er nå klar med forskjellene og fortell oss om vi hadde hjulpet deg med å forstå det. Du kan også hjelpe oss med å peke på hva som er igjen!