Atšķirība starp nomešanu un saīsināšanu

Atšķirība starp nomešanu un saīsināšanu
Atšķirība starp nomešanu un saīsināšanu

Video: Atšķirība starp nomešanu un saīsināšanu

Video: Atšķirība starp nomešanu un saīsināšanu
Video: КОТ МАЛЫШ И КРОЛИК БАФФИ открыли ПОРТАЛ В МАЙНКРАФТ! ЧЕЛЛЕНДЖ НАЙДИ КРИПЕРА ! MINECRAFT in real life 2024, Jūlijs
Anonim

Nomest pret saīsināšanu

Drop un Truncate ir divi SQL (strukturētās vaicājumu valodas) priekšraksti, kas tiek izmantoti datu bāzu pārvaldības sistēmās, kur mēs vēlamies noņemt datu ierakstus no datu bāzes. Gan priekšraksti Drop, gan Truncate noņem visus tabulas datus un saistītos SQL priekšrakstus. Dzēšanas darbība šajā gadījumā nav efektīva, jo tā izmanto vairāk krātuves nekā nomet un saīsināt.

Ja mēs vēlamies izmest tabulu datubāzē kopā ar visiem tās datiem, SQL ļauj mums to viegli veikt, izmantojot Drop priekšrakstu. Nomest komanda ir DDL (Datu definīcijas valoda) komanda, un to var izmantot, lai iznīcinātu esošu datu bāzi, tabulu, indeksu vai skatu. Tas izdzēš visu tabulā esošo informāciju, kā arī tabulas struktūru no datu bāzes. Mēs varam arī vienkārši, bet bez tabulas atbrīvoties no visiem tabulas datiem, un šādā gadījumā mēs varam izmantot SQL priekšrakstu Truncate. Saīsināt ir arī DDL komanda, un tā iznīcina visas tabulas rindas, bet saglabā tabulas definīciju to pašu turpmākai lietošanai.

Nomest komanda

Kā minēts iepriekš, komanda Drop noņem tabulas definīciju un visus tās datus, integritātes ierobežojumus, indeksus, aktivizētājus un piekļuves privilēģijas, kas tika izveidotas konkrētajā tabulā. Tādējādi tas pilnībā izmet esošo objektu no datu bāzes, un attiecības ar citām tabulām arī vairs nebūs derīgas pēc komandas izpildes. Tas arī noņem visu informāciju par tabulu no datu vārdnīcas. Tālāk ir sniegta tipiskā sintakse Drop priekšraksta izmantošanai tabulā.

Nomest TABULU

Mums vienkārši jāaizstāj tabulas nosaukums, kuru mēs vēlamies noņemt no datu bāzes iepriekš minētajā komandas Drop piemērā.

Ir svarīgi norādīt, ka Drop priekšrakstu nevar izmantot, lai dzēstu tabulu, uz kuru jau ir norādīts ārējās atslēgas ierobežojums. Tādā gadījumā vispirms ir jāatmet atsauces ārējās atslēgas ierobežojums vai šī konkrētā tabula. Tāpat Drop paziņojumu nevar lietot datu bāzes sistēmas tabulās.

Tā kā komanda Drop ir automātiskās izpildes paziņojums, operāciju pēc palaišanas nevar atsaukt un netiks aktivizēti nekādi trigeri. Kad tabula tiek atmesta, visas atsauces uz tabulu nebūs derīgas, un tāpēc, ja mēs vēlamies izmantot tabulu vēlreiz, tā ir jāizveido no jauna ar visiem integritātes ierobežojumiem un piekļuves privilēģijām. Visas attiecības ar pārējām tabulām arī ir jāatrod no jauna.

Saīsināt komandu

Komanda Saīsināt ir DDL komanda, un tā noņem visas tabulas rindas bez lietotāja norādītiem nosacījumiem un atbrīvo tabulas izmantoto vietu, taču tabulas struktūra ar kolonnām, indeksiem un ierobežojumiem paliek nemainīga. Saīsināšana izslēdz datus no tabulas, atdalot datu lapas, kas tiek izmantotas tabulas datu glabāšanai, un tikai šīs lapu sadales tiek saglabātas darījumu žurnālā. Tādējādi tas izmanto mazāk darījumu žurnāla resursu un sistēmas resursu, salīdzinot ar citām saistītām SQL komandām, piemēram, Dzēst. Tāpēc Truncate ir nedaudz ātrāks paziņojums nekā citi. Tālāk ir norādīta tipiskā komandas Saīsināt sintakse.

Saīsināt TABULU

Mums ir jāaizstāj tabulas nosaukums, no kuras mēs vēlamies noņemt visus datus, iepriekš norādītajā sintaksē.

Saīsināt nevar izmantot tabulā, uz kuru atsaucas ārējās atslēgas ierobežojums. Tas automātiski izmanto apņemšanos pirms darbības un citu saistību pēc tam, tāpēc darījuma atcelšana nav iespējama un netiek aktivizēti nekādi trigeri. Ja mēs vēlamies atkārtoti izmantot tabulu, mums ir jāpiekļūst tikai esošajai tabulas definīcijai datu bāzē.

Kāda ir atšķirība starp Drop un Truncate?

Gan komandas Drop, gan Truncate ir DDL komandas, kā arī automātiskās izpildes priekšraksti, tāpēc ar šīm komandām veiktās transakcijas nevar atsaukt.

Galvenā atšķirība starp Nomest un Saīsināt ir tā, ka komanda Nomest ne tikai noņem visus tabulas datus, bet arī neatgriezeniski noņem tabulas struktūru no datu bāzes ar visām atsaucēm, savukārt komanda Saīsināt noņem tikai visus datus. tabulas rindas, un tā saglabā tabulas struktūru un atsauces uz tām.

Ja tabula tiek atmesta, attiecības ar citām tabulām vairs nebūs derīgas, un tiks noņemti arī integritātes ierobežojumi un piekļuves privilēģijas. Tātad, ja tabula ir jāizmanto atkārtoti, tā ir jārekonstruē ar attiecībām, integritātes ierobežojumiem un arī piekļuves privilēģijām. Bet, ja tabula tiek saīsināta, tabulas struktūra un tās ierobežojumi paliek izmantošanai nākotnē, un tāpēc atkārtotai izmantošanai nav nepieciešama neviena no iepriekšminētajām darbībām.

Kad šīs komandas tiek lietotas, mums jābūt piesardzīgiem, lietojot tās. Tāpat mums vajadzētu labāk izprast šo komandu būtību, to darbību, kā arī rūpīgu plānošanu pirms to izmantošanas, lai izvairītos no būtisko elementu izlaišanas. Visbeidzot, abas šīs komandas var izmantot, lai ātri un viegli iztīrītu datubāzes, patērējot mazāk resursu.

Ieteicams: