Kukkumine vs kärpimine
Drop ja Truncate on kaks SQL-lauset (Structured Query Language), mida kasutatakse andmebaasihaldussüsteemides, mille puhul soovime andmebaasist andmekirjeid eemaldada. Nii Drop- kui Truncate-laused eemaldavad kogu tabelis olevad andmed ja sellega seotud SQL-lause. Kustutamistoiming ei ole sel juhul efektiivne, kuna see kasutab rohkem salvestusruumi kui kukutamine ja kärpimine.
Juhul, kui tahame andmebaasis olevast tabelist koos kõigi andmetega loobuda, võimaldab SQL seda hõlpsasti teha Drop-lause abil. Drop käsk on DDL (Data Definition Language) käsk ja seda saab kasutada olemasoleva andmebaasi, tabeli, indeksi või vaate hävitamiseks. See kustutab andmebaasist kogu teabe tabelis ja ka tabeli struktuuri. Samuti võime soovida vabaneda kõigist tabeli andmetest lihts alt, kuid ilma tabelita, ja sellise stsenaariumi korral saame kasutada käsku Kärbi SQL-is. Kärbi on ka DDL-käsk ja see eemaldab tabelist kõik read, kuid jätab tabeli määratluse edaspidiseks kasutamiseks samaks.
Kuksake käsk
Nagu varem mainitud, eemaldab käsk Drop tabeli määratluse ja kõik selle andmed, terviklikkuse piirangud, indeksid, päästikud ja juurdepääsuõigused, mis loodi selles konkreetses tabelis. Seega eemaldab see olemasoleva objekti andmebaasist täielikult ja seosed teiste tabelitega ei kehti ka pärast käsu täitmist. Samuti eemaldab see andmesõnastikust kogu teabe tabeli kohta. Järgmine on tüüpiline süntaks Drop-lause kasutamiseks tabelis.
TÜKKATA TABEL
Peame lihts alt asendama tabeli nime, mida tahame andmebaasist eemaldada ül altoodud käsu Drop näites.
Oluline on märkida, et Drop-lauset ei saa kasutada tabeli kustutamiseks, millele on juba viidatud võõrvõtmepiiranguga. Sel juhul tuleks esm alt loobuda viidavast võõrvõtmepiirangust või sellest konkreetsest tabelist. Samuti ei saa Drop-lauset rakendada andmebaasi süsteemitabelites.
Kuna käsk Drop on automaatse sissekandmise avaldus, ei saa pärast käivitamist toimingut tagasi pöörata ja käivitajaid ei käivitata. Kui tabel tühistatakse, ei kehti kõik viited tabelile ja kui tahame tabelit uuesti kasutada, tuleb see uuesti luua koos kõigi terviklikkuse piirangute ja juurdepääsuõigustega. Kõik seosed teiste tabelitega tuleb samuti uuesti leida.
Kärbi käsk
Truncate käsk on DDL-käsk ja see eemaldab tabelist kõik read ilma kasutaja määratud tingimusteta ja vabastab tabeli kasutatava ruumi, kuid tabeli struktuur koos veergude, indeksite ja piirangutega jääb samaks. Kärbimine eemaldab tabelist andmed, eraldades tabeliandmete salvestamiseks kasutatavad andmelehed, ja tehingulogis hoitakse ainult neid lehtede eraldamisi. Seega kasutab see vähem tehingulogi ressursse ja süsteemiressursse võrreldes muude seotud SQL-käskudega, nagu Delete. Nii et kärpimine on teistest pisut kiirem avaldus. Järgmine on käsu Kärbi tüüpiline süntaks.
KÄRBI TABEL
Peaksime ül altoodud süntaksis asendama tabeli nime, millest tahame kõik andmed eemaldada.
Kärbi ei saa kasutada tabelis, millele on viidatud võõrvõtmepiiranguga. See kasutab enne tegutsemist automaatselt sidumist ja pärast seda teist kohustust, nii et tehingu tagasivõtmine on võimatu ja käivitajaid ei käivitata. Kui tahame tabelit uuesti kasutada, peame pääsema juurde ainult andmebaasis olemasolevale tabelidefinitsioonile.
Mis vahe on kukutamisel ja kärpimisel?
Nii kukutamis- kui ka kärbikäsud on DDL-käsud ja ka automaatse sissekandmise avaldused, nii et nende käskude abil tehtud tehinguid ei saa tagasi pöörata.
Peamine erinevus kukutamise ja kärpimise vahel seisneb selles, et käsk Drop eemaldab mitte ainult kõik tabelis olevad andmed, vaid ka tabelistruktuuri koos kõigi viidetega jäädav alt andmebaasist, samas kui käsk Kärpimine eemaldab ainult kõik andmed. tabeli read ning see säilitab tabeli struktuuri ja selle viited.
Tabelist loobumisel ei kehti seos enam teiste tabelitega ning samuti eemaldatakse terviklikkuse piirangud ja juurdepääsuõigused. Nii et kui tabelit on vaja uuesti kasutada, tuleb see rekonstrueerida suhete, terviklikkuse piirangute ja ka juurdepääsuõigustega. Kui tabel on aga kärbitud, jäävad tabeli struktuur ja selle piirangud edaspidiseks kasutamiseks ning seega ei ole korduvkasutamiseks vaja ühtegi ül altoodud taasloomist.
Kui neid käske rakendatakse, peame olema nende kasutamisel ettevaatlikud. Samuti peaksime paremini mõistma nende käskude olemust ja nende toimimist ning enne nende kasutamist hoolik alt planeerima, et vältida oluliste asjade kadumist. Lõpuks saab mõlemat käsku kasutada andmebaaside kiireks ja lihtsaks puhastamiseks, kulutades vähem ressursse.