Razlika med skrajšanjem in brisanjem

Ustvarjanje in manipulacija podatkov je osnova podatkovnih baz in imenujemo ga DDL oziroma DML. DDL je okrajšava za jezik definicije podatkov. Lahko bi ustvaril ali spremenil podatkovne strukture v zbirkah podatkov in jih ni bilo mogoče uporabiti za spreminjanje podatkov, ki so prisotni v tabelah. Na primer, imamo ukaze, ki samo ustvarijo tabelo z določenimi atributi tabele, vendar nikoli ne doda nobenih vrstic v tabelo. Toda DML, jezik za upravljanje podatkov, lahko dodaja, briše ali spreminja podatke v tabelah. Na splošno velja, da ukazi DDL obravnavajo strukture tabel, medtem ko ukazi DML obravnavajo dejanske podatke. Naj bo, zakaj samo odstopamo od teme "Razlika med skrajšanjem in brisanjem"? Obstajajo razlogi, da smo govorili o DML in DDL. Razumeli bi ga v prihodnji razpravi.

Kaj je ukaz Truncate?

Namen ukaza Truncate je izbrisati celotno tabelo. Ko uporabite ukaz Truncate, boste izgubili vse podatke na mizi in pri uporabi morate biti previdni. Sporočite nam, kako ga uporabiti.

Sintaksa Truncate:

TRUNCATNA TABELA ime tabele;

Tukaj morate določiti ime tabele, ki jo je treba v celoti izbrisati. To zagotavlja, da bi v pomnilniku sedela katera koli miza. Tu je primer uporabe Truncate-a.

Spodaj je tabela 'zaposleni' in samo poglejte v vrstice podatkov v njej.

emp-id emp-name imenovanje
1011 Jack Službenec
1012 Rožica Administrator
1014 Nancy Finance

Zdaj pa izdajmo spodnji ukaz na tabeli zaposlenih.

TRUNCATNA TABELA zaposleni;

Tu je rezultat zgornje skladnje in v njej ni podatkov.

emp-id emp-name imenovanje

Kaj je ukaz za brisanje?

Namen ukaza Delete je odstraniti določene vrstice iz tabele. Tu se uporablja klavzula "Kje" za določanje vrstic, ki jih je treba izbrisati. Ko vrstic ne določimo, bi ukaz izbrisal vse vrstice v tabeli. Samo poglejte si njegovo sintakso.

IZPUSTI OD zaposleni;

Zgornja sintaksa izbriše vse vrstice iz tabele 'zaposleni'. Tako dobljena tabela ne bi vsebovala podatkov.

IZPUSTI OD zaposleni KJE emp-id = 1011;

Ta stavek samo izbriše eno vrstico, katere em-ID je 1011. Tako bi bila dobljena tabela, kot je spodaj.

emp-id emp-name imenovanje
1012 Rožica Administrator
1014 Nancy Finance

Razlike:

  • Truncate je DDL; Brisanje je DML: Zgoraj smo razpravljali, kako delujeta DDL in DML v zgornji razpravi. Ukaz Truncate je DDL in deluje na ravni strukture podatkov. Toda Delete je ukaz DML in deluje na podatkih tabele. Druga primera za DDL sta CREATE in ALTER. Na podoben način lahko rečemo, da so ukazi SELECT, UPDATE in INSERT odlični primeri za DML.
  • Kako deluje Truncate and Delete: Takoj, ko izdamo ukaz Truncate, poišče samo določeno tabelo. Nato popolnoma odstrani vse podatke iz pomnilnika. V primeru brisanja pa je postopek dela malo drugačen. Tu se izvirni podatki tabele kopirajo v prostor, ki se imenuje prostor "Povrni", preden začnemo z dejanskimi manipulacijami. Nato se spremembe izvedejo na dejanskem prostoru podatkov tabele. Tako se oba razlikujeta v načinu dela.

Odrežite -> odstranite celotne podatke iz tabele -> Prostor tabele je zdaj sproščen.

Izbriši -> Kopirajte prvotne podatke tabele v prostor Povrnitev -> izbrišite navedene podatke / celotno tabelo -> Prostor tabel je osvobojen, prostor za nazaj pa je zapolnjen.

  • Vrnitev: Povračilo je podobno kot ukaz Undo v naših Microsoftovih dodatkih. Uporablja se za preklic sprememb, ki smo jih opravili pred kratkim, tj. Od zadnje shranjene točke. Za izvedbo operacije je treba podatke pred kopiranjem kopirati v prostor za povratno vrnitev. Čeprav ti Roll hrbtišča potrebujejo dodaten pomnilnik, so nadvse koristni za vrnitev k originalu. Še posebej, ko kaj urejate po pomoti! Pridi do Truncate in Delete v zvezi z Roll nazaj. Kot smo že razpravljali, Truncate nikoli ne uporablja prostora za povratno vrnitev in nismo se mogli vrniti k prvotnim podatkom. Toda ukaz Delete uporabi prostor za povrnitev nazaj, zato lahko samo uporabimo »Zavezi« ali »RollBack«, da spremembe sprejmemo ali prekličemo.
  • Sprožilci: Za tiste, ki potrebujejo razlago o sprožilcih, tukaj je nekaj opombe. Sprožilci so vnaprej določen niz operacij / operacij, ki jih je treba aktivirati, ko tabela naleti na določeno stanje. Lahko bi na primer sprožili spremembo zneska plače, ko ima izkušnja zaposlenih v podjetju več kot eno leto. Ti sprožilci bi lahko delovali tudi na drugih mizah. Na primer, lahko posodobimo finančno tabelo takoj, ko se zaposlenemu poveča plača.

Truncate je ukaz DDL, sprožilec tukaj ni dovoljen. Toda Delete je ukaz DML, sprožilci so tukaj dovoljeni.

  • Kar je hitrejše? Kot ste uganili, bi bil ukaz Truncate hitrejši od ukaza Delete. Prvi bi lahko odstranil vse podatke in ni treba preverjati nobenih ustreznih pogojev. Tudi izvirni podatki niso kopirani v povratni prostor, kar prihrani veliko časa. Zaradi teh dveh dejavnikov Truncate deluje hitreje kot Delete.
  • Ali lahko uporabimo klavzulo KJE? Klavzula 'Kjer' se uporablja za določitev določenih pogojev ujemanja in s Truncate ni nič. Ker Truncate nikoli ne išče nobenih ustreznih pogojev in le odstrani vse vrstice, tukaj ne moremo uporabiti klavzule "Where". Pogoj pa lahko vedno določimo s pomočjo klavze 'kjer' v ukazu Delete.
  • Ki zaseda več prostora? Odsek ne bo uporabil prostora za vračanje in prihrani ta pomnilnik. Toda brisanje potrebuje varnostno kopijo v obliki povratnega prostora, zato potrebuje več pomnilniškega prostora kot okrnjeni.

To so razlike in poglejmo jih v tabeli.

S. št Razlike v Odrežite Izbriši
1. DDL ali DML? Je DDL in deluje na ravni strukture podatkov. Druga primera za DDL sta CREATE in ALTER. To je ukaz DML in deluje na podatkih tabele. DML pomeni jezik za upravljanje podatkov. Ukazi, kot so SELECT, UPDATE in INSERT, so popolni primeri za DML. DML pomeni jezik za upravljanje podatkov.

2. Kako deluje? Takoj, ko izdamo ukaz Truncate, poišče samo določeno tabelo. Nato popolnoma odstrani vse podatke iz pomnilnika. Tu se izvirni podatki tabele kopirajo v prostor, ki se imenuje prostor "Povrni", preden začnemo z dejanskimi manipulacijami s podatki. Nato se spremembe izvedejo na dejanskem prostoru podatkov tabele.
3. RollBack Ukaz Truncate nikoli ne uporablja prostora za povratno vrnitev in nismo se mogli vrniti k prvotnim podatkom. Povratni prostor je ekskluziven in je zaseden, ko so izdani ukazi DML. Ukaz Delete uporablja prostor za vrnitev nazaj in lahko uporabimo le „Zaveži“ ali „RollBack“, da spremembe sprejmemo ali prekličemo.

4. Sprožilci Skrčenost je ukaz DDL, sprožilci niso dovoljeni. Delete je ukaz DML, sprožilci so tukaj dovoljeni.

5. Kar je hitrejše? Lahko bi odstranili vse podatke in ni potrebe, da preverjate kakršne koli ustrezne pogoje. Tudi izvirni podatki niso kopirani v povratni prostor, kar prihrani veliko časa. Zaradi teh dveh dejavnikov Truncate deluje hitreje kot Delete.

Uporablja povratni prostor in na njem je treba vedno hraniti izvirne podatke. To je dodatno breme in posledično traja veliko časa kot Truncate.
6. Ali lahko uporabimo klavzulo KJE? Ker Truncate nikoli ne išče nobenih ustreznih pogojev in le odstrani vse vrstice, tukaj ne moremo uporabiti klavzule "Where". Pogoj pa lahko vedno določimo s pomočjo klavze 'kjer' v ukazu Delete.
7. Ki zaseda več prostora? Odsek ne bo uporabil prostora za vračanje in prihrani ta pomnilnik. Potrebuje varnostno kopijo v obliki povratnega prostora, zato potrebuje več pomnilniškega prostora kot okrnjeni.

Poznavanje razlik med dvema entitetama širi znanje o obeh! Pristali ste na pravo pot, tj. Na spletno stran, da bi razumeli razlike, predvsem med ukazi izreza in brisanja. Upam, da ste zdaj jasni z njegovimi razlikami in nam sporočite, če smo vam pomagali razumeti. Lahko bi nam tudi pomagali pokazati, kaj je ostalo!