Разлика између команде ДЕЛЕТЕ и ТРУНЦАТЕ је најчешћи део питања за интервју. Углавном се користе за брисање података из базе података. Главна разлика између њих је у томе што наредба делете брише податке без ресетовања идентитета табеле, док команда трунцате ресетује идентитет одређене табеле . Овај чланак објашњава комплетан преглед наредби ДЕЛЕТЕ и ТРУНЦАТЕ и њихове разлике које се првенствено користе наизменично, али су потпуно различите.
Шта је команда ДЕЛЕТЕ?
То је ДМЛ или команда за манипулацију подацима користи се за брисање записа из табеле који нису потребни у бази података. Уклања цео ред из табеле и производи број избрисаних редова. Потребна нам је дозвола за брисање у циљној табели да извршимо ову команду. Такође нам омогућава да филтрирамо и избришемо све специфичне записе користећи ГДЕ клаузула из табеле.
Појашњава да имамо резервну копију наше базе података пре извршавања ове команде јер не можемо да повратимо избрисане записе помоћу овог упита. Стога резервне копије базе података омогућавају нам да вратимо податке кад год нам затребају у будућности.
Следећа синтакса објашњава команду ДЕЛЕТЕ за уклањање података из табеле:
DELETE FROM table_name WHERE condition;
Шта је ТРУНЦАТЕ команда?
Скраћени исказ је а ДДЛ или команда језика дефиниције података користи се за уклањање комплетних података из табеле без уклањања структуре табеле. Не можемо користити ГДЕ клаузулу са овом командом, тако да филтрирање записа није могуће. Након извршења ове команде, ми не може вратити избрисане податке јер се дневник не одржава током извођења ове операције.
Команда трунцате ослобађа странице уместо редова и прави унос за странице за ослобађање уместо редова у евиденцији трансакција. Ова команда закључава странице уместо редова; стога је потребно мање брава и ресурса. Имајте на уму да не можемо да користимо израз трунцате када се на табелу позива страни кључ или када учествује у индексираном приказу.
претворити јава објекат у јсон
Следећа синтакса објашњава команду ТРУНЦАТЕ за уклањање података из табеле:
TRUNCATE TABLE table_name;
Кључне разлике између ДЕЛЕТЕ и ТРУНЦАТЕ
Следеће тачке објашњавају разлике између команде делете и трунцате:
- Наредба ДЕЛЕТЕ се користи када желимо да уклонимо неке или све записе из табеле, док ће изјава ТРУНЦАТЕ избрисати читаве редове из табеле.
- ДЕЛЕТЕ је ДМЛ команда јер само мења податке табеле, док је ТРУНЦАТЕ ДДЛ команда.
- Команда ДЕЛЕТЕ може филтрирати записе/торке користећи клаузулу ВХЕРЕ. Међутим, команда ТРУНЦАТЕ не дозвољава коришћење ГДЕ клаузулу, тако да не можемо да филтрирамо редове док скраћујемо.
- ДЕЛЕТЕ активира све брисање покретача на столу да пали. Међутим, никакви окидачи се не активирају на операцији скраћивања јер она не ради на појединачним редовима.
- ДЕЛЕТЕ врши брисање ред по ред из табеле, редоследом којим су обрађени. Међутим, ТРУНЦАТЕ ради на страницама са подацима уместо на редовима јер је избрисао читаве податке табеле одједном.
- Изјава ДЕЛЕТЕ само брише записе и не ресетује идентитет табеле , док ТРУНЦАТЕ ресетује идентитет одређене табеле.
- Команда ДЕЛЕТЕ захтева више закључавања и ресурса базе података јер добија закључавање на сваком избрисаном реду. Насупрот томе, ТРУНЦАТЕ преузима закључавање на страници са подацима пре брисања странице са подацима; стога, захтева мање брава и мало ресурса.
- Наредба ДЕЛЕТЕ прави унос у дневник трансакција за сваки избрисани ред, док ТРУНЦАТЕ бележи дневник трансакција за сваку страницу са подацима.
- ТРУНЦАТЕ команда је брже него наредба ДЕЛЕТЕ јер она издваја странице са подацима уместо редова и бележи странице са подацима уместо редова у евиденцијама трансакција.
- Једном када се запис избрише коришћењем команде ТРУНЦАТЕ, не можемо га вратити назад. Насупрот томе, можемо вратити избрисане податке које смо уклонили из операције ДЕЛЕТЕ.
ДЕЛЕТЕ вс. ТРУНЦАТЕ упоредни графикон
Следећи графикон поређења објашњава њихове главне разлике на брз начин:
Основа за поређење | ИЗБРИШИ | ТРУНЦАТЕ |
---|---|---|
Дефиниција | Изјава делете се користи за уклањање једног или више записа из постојеће табеле у зависности од наведеног услова. | Команда трунцате уклања комплетне податке из постојеће табеле, али не и саму табелу. Он чува структуру табеле или шему. |
Језик | То је ДМЛ (Језик за управљање подацима) команда. | То је ДДЛ (Језик дефиниције података) команда. |
ГДЕ | Може да користи клаузулу ВХЕРЕ да филтрира било који одређени ред или податке из табеле. | Не користи клаузулу ВХЕРЕ за филтрирање записа из табеле. |
Дозвола | Морамо да имамо ДЕЛЕТЕ дозволу да користимо ову команду. | Морамо да имамо АЛТЕР дозволу да користимо ову команду. |
Рад | Ова команда елиминише записе један по један. | Ова команда брише целу страницу са подацима која садржи записе. |
закључати | Закључаће ред пре брисања. | Закључаће страницу са подацима пре брисања. |
Идентитет табеле | Ова команда не ресетује идентитет табеле јер само брише податке. | Увек ресетује идентитет табеле. |
Трансакција | Одржава евиденцију трансакција за сваки избрисани запис. | Не одржава евиденцију трансакција за сваку избрисану страницу са подацима. |
Брзина | Његова брзина је спора јер је одржавао дневник. | Његово извршење је брзо јер је избрисао читаве податке одједном без одржавања евиденције трансакција. |
Окидач | Ова команда такође може да активира окидач примењен на столу и изазове њихово покретање. | Ова команда не активира окидаче примењене на табели за активирање. |
Ресторе | Омогућава нам да вратимо избрисане податке коришћењем наредбе ЦОММИТ или РОЛЛБАЦК. | Не можемо да вратимо избрисане податке након коришћења ове команде. |
Индексирани приказ | Може се користити са индексираним приказима. | Не може се користити са индексираним приказима. |
Спаце | Наредба ДЕЛЕТЕ заузима више простора за трансакцију него скраћивање јер одржава евиденцију за сваки избрисани ред. | Наредба ТРУНЦАТЕ заузима мање простора за трансакције јер одржава евиденцију трансакција за целу страницу са подацима уместо за сваки ред. |
Закључак
У овом чланку смо направили поређење између израза делете и трунцате. Закључили смо да се наредба ДЕЛЕТЕ користи када желимо да прилагодимо брисање записа из табеле. А ТРУНЦАТЕ команда се користи када не желимо да оставимо никакве записе или податке у табели, тј. желимо да испразнимо табелу.