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.
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 |
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 |
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.
Truncate je ukaz DDL, sprožilec tukaj ni dovoljen. Toda Delete je ukaz DML, sprožilci so tukaj dovoljeni.
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!