Dzēst pret nomešanu
Abas komandas Delete un Drop pieder SQL (strukturētās vaicājumu valodas) priekšrakstiem, un tās tiek izmantotas datu noņemšanai no datu bāzes. Dzēst ir komanda DML (datu manipulācijas valoda). Tas izdzēš dažus vai visus tabulas datus atbilstoši lietotāja norādītajam nosacījumam. Paziņojums Dzēst noņem tikai datu ierakstus tabulā, bet tabulas struktūra datu bāzē ir tāda pati. Nomest komanda ir DDL (datu definīcijas valoda) paziņojums, un tā darbojas citādi nekā komanda Dzēst. Tas nav uz nosacījumiem balstīts paziņojums, tāpēc no tabulas tiek izdzēsti visi dati, kā arī tiek neatgriezeniski noņemta tabulas struktūra un visas atsauces uz šo tabulu no datu bāzes.
Dzēst paziņojumu
Kā minēts iepriekš, priekšraksts Delete noņem datus no tabulas, pamatojoties uz sniegto nosacījumu, un klauzula Kur tiek izmantota kopā ar Delete, lai norādītu šo nepieciešamo nosacījumu. Ja klauzula Kur nav norādīta ar Delete, visi tabulas dati tiek noņemti no tabulas. Tomēr operācijā Dzēst esošā tabulas struktūra paliek nemainīga. Tāpēc lietotājam nav jādefinē tabulas struktūra, ja viņš/viņa vēlas atkārtoti izmantot tabulu. Tā kā Delete ir DML komanda, pēc izpildes tā netiek veikta automātiski. Tādējādi to var atvilkt atpakaļ, lai atsauktu iepriekšējo darbību. Pretējā gadījumā ir jāizsauc paziņojums par saistību izpildi, lai izmaiņas būtu pastāvīgas. Izpildot paziņojumu Dzēst, tas ieraksta ierakstu darījumu žurnālā par katru rindas dzēšanu. Tātad, tas ietekmē darbības palēnināšanos. Tas arī neatdala pēc izpildes izmantoto vietu.
Tālāk ir norādīta priekšraksta Delete sintakse.
DZĒST NO
vai
IZDZĒST NO KURAS
Nomest paziņojumu
Drop paziņojums no datu bāzes noņem ne tikai visus tabulu ierakstus bez jebkādiem nosacījumiem, bet arī neatgriezeniski no datu bāzes noņem tabulas struktūru, integritātes ierobežojumus, indeksus un attiecīgās tabulas piekļuves privilēģijas. Tātad visas attiecības citām tabulām arī vairs nepastāv, un informācija par tabulu tiek noņemta no datu vārdnīcas. Tātad, ja lietotājs vēlas atkārtoti izmantot tabulu, viņam vēlreiz jādefinē tabulas struktūra un visas pārējās atsauces uz tabulu. Drop ir DDL komanda, un pēc komandas izpildes to nevar atgriezt atpakaļ, jo komanda Drop izmanto automātisko saistību. Tāpēc lietotājam ir jābūt ļoti uzmanīgam, izmantojot šo komandu. Drop paziņojumu nevar lietot sistēmas tabulās, kā arī to nevar izmantot tabulām, kurām ir ārējās atslēgas ierobežojumi.
Komandu Drop var izmantot ne tikai SQL tabulām, bet arī datu bāzēm, skatiem un tabulu kolonnām, un visi šajos objektos glabātie dati tiek uz visiem laikiem zaudēti kopā ar objektiem.
Tālāk ir norādīta tipiskā komandas Drop sintakse.
Nomest TABULU
Kāda ir atšķirība starp dzēšanu un nomešanu?
1. Komandas Dzēst un Nomest noņem tabulas datus no datu bāzes.
2. Bet priekšraksts Delete veic nosacītu dzēšanu, savukārt komanda Drop dzēš visus tabulas ierakstus.
3. Turklāt priekšraksts Delete noņem tikai tabulas rindas un saglabā tabulas struktūru tādu pašu, savukārt komanda Drop noņem visus tabulas datus un tabulas struktūru, kā arī noņem visas pārējās atsauces no datu bāzes.
4. Dzēst ir DML priekšraksts, savukārt Drop ir DDL komanda. Tādējādi dzēšanas darbību var atsaukt, un tā netiek veikta automātiski, savukārt nomešanas darbību nevar atsaukt nekādā veidā, jo tas ir automātiski veikts paziņojums.
5. Nomest komandu nevar izmantot tabulās, uz kurām ir atsauces ar ārējās atslēgas ierobežojumiem, bet tās vietā var izmantot komandu Dzēst.
6. Komanda Drop ir jāizmanto uzmanīgi, labi izprotot, salīdzinot ar Delete priekšrakstu SQL lietojumprogrammās.