Brisanje vs. Spuščanje
Ukaza Delete in Drop pripadata stavkom SQL (Structured Query Language) in se uporabljata v primeru odstranjevanja podatkov iz podatkovne baze. Delete je ukaz DML (Data Manipulation Language). Izbriše nekatere ali vse podatke iz tabele glede na pogoje, ki jih je določil uporabnik. Izjava Delete odstrani le podatkovne zapise v tabeli, vendar je struktura tabele enaka v bazi podatkov. Ukaz Drop je stavek DDL (Data Definition Language) in deluje drugače kot ukaz Delete. Ni pogojna izjava, zato izbriše celotne podatke iz tabele, prav tako trajno odstrani strukturo tabele in vse sklice na to tabelo iz baze podatkov.
Izbriši izjavo
Kot je omenjeno zgoraj, stavek Delete odstrani podatke iz tabele na podlagi podanega pogoja, stavek Where pa se uporablja z Delete za določitev tega zahtevanega pogoja. Če stavek Where ni naveden z Delete, so vsi podatki tabele odstranjeni iz tabele. Vendar pri operaciji Delete obstoječa struktura tabele ostane enaka. Zato uporabniku ni treba definirati strukture tabele, če želi znova uporabiti tabelo. Ker je Delete ukaz DML, se po izvedbi ne potrdi samodejno. Torej, to je mogoče vrniti nazaj, da razveljavite prejšnjo operacijo. V nasprotnem primeru je treba poklicati stavek Commit, da bodo spremembe trajne. Med izvajanjem stavka Delete zabeleži vnos v dnevnik transakcij za vsako brisanje vrstice. To torej vpliva na upočasnitev delovanja. Prav tako ne sprosti prostora, uporabljenega po izvedbi.
Sledi sintaksa za stavek Delete.
IZBRIŠI IZ
ali
IZBRIŠI OD KJE
Drop Statement
Stavek Drop odstrani ne samo vse zapise tabele iz baze podatkov brez kakršnih koli pogojev, ampak tudi trajno odstrani strukturo tabele, omejitve celovitosti, indekse in privilegije dostopa ustrezne tabele iz baze podatkov. Torej tudi vse relacije za druge tabele ne obstajajo več, informacije o tabeli pa so odstranjene iz podatkovnega slovarja. Torej, če želi uporabnik ponovno uporabiti tabelo, mora znova definirati strukturo tabele in vse druge reference na tabelo. Drop je ukaz DDL in po izvedbi ukaza ga ni mogoče znova vrniti nazaj, ker ukaz Drop uporablja samodejno potrditev. Zato mora biti uporabnik zelo previden pri uporabi tega ukaza. Stavka Drop ni mogoče uporabiti za sistemske tabele in ga tudi ni mogoče uporabiti za tabele, ki imajo omejitve tujega ključa.
Ukaz Drop lahko uporabite ne le za tabele SQL, ampak tudi za baze podatkov, poglede in stolpce tabel, vsi podatki, shranjeni v teh objektih, pa so za vedno izgubljeni skupaj z objekti.
Sledi tipična sintaksa za ukaz Spusti.
DROP TABLE
Kakšna je razlika med Izbriši in Spusti?
1. Ukaza Delete and Drop odstranita podatke tabele iz baze podatkov.
2. Toda stavek Delete izvede pogojno brisanje, medtem ko ukaz Drop izbriše celotne zapise v tabeli.
3. Poleg tega stavek Delete odstrani samo vrstice v tabeli in ohrani strukturo tabele kot enako, medtem ko ukaz Drop odstrani vse podatke v tabeli in strukturo tabele, prav tako odstrani vse druge reference iz baze podatkov.
4. Delete je stavek DML, medtem ko je Drop ukaz DDL. Operacijo brisanja je torej mogoče povrniti nazaj in ni samodejno odobrena, medtem ko operacije spusti ni mogoče povrniti na noben način, saj je samodejno odobrena izjava.
5. Ukaza Drop ni mogoče uporabiti v tabelah, na katere se sklicujejo omejitve tujega ključa, namesto tega pa lahko uporabite ukaz Delete.
6. Ukaz Drop je treba uporabljati previdno z dobrim razumevanjem v primerjavi s stavkom Delete v aplikacijah SQL.