Brisanje nasuprot skraćivanju
Obje SQL (Structure Query Language) naredbe, Delete i Truncate koriste se za uklanjanje podataka pohranjenih u tablicama u bazi podataka. Delete je naredba DML (Data Manipulation Language) i uklanja neke ili sve retke tablice. Klauzula "Where" koristi se za određivanje redaka koji se moraju izbrisati, a ako se klauzula "Where" ne koristi s naredbom Delete, uklanja sve podatke u tablici. Truncate je naredba DDL (Data Definition Language) i uklanja cijele podatke iz tablice. Obje ove naredbe ne uništavaju strukturu tablice i reference na tablicu, a samo se podaci uklanjaju prema potrebi.
Izbriši izjavu
Delete izjava omogućuje korisniku da ukloni podatke iz postojeće tablice u bazi podataka na temelju navedenog uvjeta, a ‘Where klauzula’ se koristi za određivanje ovog uvjeta. Naredba Delete naziva se izvršenjem zapisa jer briše samo jedan redak odjednom i čuva unos za svako brisanje retka u dnevniku transakcija. Dakle, ovo uzrokuje usporavanje operacije. Delete je DML naredba, pa se ne uređuje automatski tijekom izvođenja naredbe. Stoga se operacija brisanja može vratiti kako bi se ponovo pristupilo podacima, ako je potrebno. Nakon izvršenja naredbe Delete, treba je izvršiti ili vratiti kako bi se promjene trajno spremile. Naredba Delete ne uklanja strukturu tablice iz baze podataka. Također ne oslobađa memorijski prostor koji koristi tablica.
Tipična sintaksa za naredbu Brisanje navedena je u nastavku.
IZBRIŠI IZ
ili
IZBRIŠI ODAKLE
Skraći izjavu
Truncate izjava uklanja sve podatke iz postojeće tablice u bazi podataka, ali zadržava istu strukturu tablice, također ograničenja integriteta, privilegije pristupa i odnose s drugim tablicama. Dakle, nije potrebno ponovno definirati tablicu, a može se koristiti stara struktura tablice, ako korisnik želi ponovno koristiti tablicu. Truncate uklanja cjelokupne podatke oslobađanjem podatkovnih stranica koje se koriste za čuvanje podataka, a samo se te dealokacije stranica čuvaju u dnevniku transakcija. Stoga naredba truncate koristi samo manje resursa sustava i dnevnika transakcija za rad, tako da je brža od drugih srodnih naredbi. Truncate je DDL naredba, tako da koristi automatske obveze prije i nakon izvršenja naredbe. Stoga truncate ne može ni na koji način ponovno vratiti podatke. Oslobađa memorijski prostor koji koristi tablica nakon izvršenja. Ali iskaz Truncate ne može se primijeniti na tablice na koje referenciraju ograničenja stranog ključa.
Slijedi uobičajena sintaksa za iskaz Truncate.
KRIŠI TABLICU
Koja je razlika između Delete i Truncate?
1. Naredbe Delete i Truncate uklanjaju podatke iz postojećih tablica u bazi podataka bez oštećenja strukture tablice ili drugih referenci na tablicu.
2. Međutim, naredba Delete može se koristiti za brisanje određenih redaka samo u tablici koristeći relevantan uvjet ili za brisanje svih redaka bez ikakvih uvjeta, dok se naredba Truncate može koristiti samo za brisanje cijelih podataka u tablici.
3. Delete je DML naredba i može vratiti operaciju ako je potrebno, ali Truncate je DDL naredba, pa je to naredba automatskog izvršavanja i ne može se vratiti ni na koji način. Stoga je važno pažljivo koristiti ovu naredbu u upravljanju bazom podataka.
4. Operacija skraćivanja troši manje resursa sustava i resursa dnevnika transakcija nego operacija brisanja, stoga se skraćenje smatra bržim od brisanja.
5. Također, Delete ne oslobađa prostor koji koristi tablica, dok Truncate oslobađa prostor koji se koristi nakon izvršenja, tako da Delete nije učinkovit u slučaju brisanja cijelih podataka iz tablice baze podataka.
6. Međutim, naredba Truncate nije dopuštena za korištenje kada je tablica navedena ograničenjem stranog ključa i u tom slučaju, naredba Delete može se koristiti umjesto Truncate.
7. Konačno, obje ove naredbe imaju prednosti, ali i nedostatke u njihovoj primjeni u sustavima upravljanja bazom podataka i korisnik bi trebao biti svjestan korištenja ovih naredbi na odgovarajući način za postizanje dobrih rezultata.