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