logo

МиСКЛ ДЕЛЕТЕ изјава

МиСКЛ ДЕЛЕТЕ израз се користи за уклањање записа из МиСКЛ табеле који више нису потребни у бази података. Овај упит у МиСКЛ-у брише цео ред из табеле и производи број избрисаних редова . Такође нам омогућава да избришемо више од једног записа из табеле у оквиру једног упита, што је корисно док уклањамо велики број записа из табеле. Коришћењем наредбе за брисање можемо такође уклонити податке на основу услова.

Једном када избришемо записе помоћу овог упита, не можемо да их повратимо . Стога се препоручује да пре брисања било ког записа из табеле направите резервну копију ваше базе података . Резервне копије базе података нам омогућавају да вратимо податке кад год нам затребају у будућности.

схлока мехта

Синтакса:

Следеће је синтакса која илуструје како се користи наредба ДЕЛЕТЕ:

 DELETE FROM table_name WHERE condition; 

У горњој изјави, прво морамо да наведемо име табеле из које желимо да избришемо податке. Друго, морамо да наведемо услов за брисање записа у клаузули ВХЕРЕ, што је опционо. Ако изоставимо клаузулу ВХЕРЕ у наредби, овај упит ће уклонити читаве записе из табеле базе података.

Ако желимо да избришемо записе из више табела користећи један ДЕЛЕТЕ упит, морамо додати ПРИДРУЖИТИ клаузула са наредбом ДЕЛЕТЕ.

Ако желимо да избришемо све записе из табеле, а да не знамо број избрисаних редова, морамо да користимо ТРУНЦАТЕ ТАБЛЕ изјава која даје боље перформансе.

Хајде да разумемо како функционише наредба ДЕЛЕТЕ МиСКЛ кроз разне примере.

Примери исказа МиСКЛ ДЕЛЕТЕ

Овде ћемо користити 'Запослени' и 'Плаћање' табеле за демонстрацију наредбе ДЕЛЕТЕ. Претпоставимо да табеле запослених и плаћања садрже следеће податке:

мискл упит за брисање
мискл упит за брисање

Ако желимо да избришемо запосленог чије емп_ид је 107 , требало би да користимо наредбу ДЕЛЕТЕ са клаузулом ВХЕРЕ. Погледајте доњи упит:

 mysql> DELETE FROM Employees WHERE emp_id=107; 

Након извршења упита, он ће вратити резултат као на слици испод. Када се запис избрише, проверите табелу користећи СЕЛЕЦТ наредбу:

абецеда нумерисана
мискл упит за брисање

Ако желимо да избришемо све записе из табеле, нема потребе да користимо клаузулу ВХЕРЕ са наредбом ДЕЛЕТЕ. Погледајте доњи код и излаз:

мискл упит за брисање

У горњем излазу можемо видети да ће након уклањања свих редова табела Запослени бити празна. То значи да у изабраној табели нема доступних записа.

МиСКЛ клаузула ДЕЛЕТЕ и ЛИМИТ

МиСКЛ Лимит клаузула се користи за ограничавање броја враћаних редова из скупа резултата, уместо за преузимање целих записа у табели. Понекад желимо да ограничимо број редова који се бришу из табеле; у том случају ћемо користити ЛИМИТ клаузула како следи:

 DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count; 

Треба напоменути да редослед редова у МиСКЛ табели није специфициран. Стога, увек треба да користимо ОРДЕР БИ клаузулу док користите клаузулу ЛИМИТ.

На пример , следећи упит прво сортира запослене према њиховим именима по абецедном реду и брише прва три запослена из табеле:

 mysql> DELETE FROM Employees ORDER BY name LIMIT 3; 

То ће дати следећи излаз:

мискл упит за брисање

МиСКЛ клаузула ДЕЛЕТЕ и ЈОИН

ЈОИН клаузула се користи за додавање две или више табела у МиСКЛ. Додаћемо клаузулу ЈОИН са наредбом ДЕЛЕТЕ кад год желимо да избришемо записе из више табела у оквиру једног упита. Погледајте доњи упит:

 mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102; 

Излаз:

Након извршења, видећемо излаз као на слици испод:

мискл упит за брисање

Да бисте прочитали више информација о наредби ДЕЛЕТЕ са клаузулом ЈОИН, кликните овде .