Изявлението MySQL DELETE се използва за премахване на записи от MySQL таблицата, които вече не са необходими в базата данни. Тази заявка в MySQL изтрива цял ред от таблицата и извежда броя на изтритите редове . Освен това ни позволява да изтрием повече от един запис от таблицата в рамките на една заявка, което е от полза при премахването на голям брой записи от таблица. С помощта на оператора за изтриване можем също да премахваме данни въз основа на условия.
След като изтрием записите с тази заявка, не можем да я възстановим . Ето защо, преди да изтриете записи от таблицата, се препоръчва да създайте резервно копие на вашата база данни . Архивирането на базата данни ни позволява да възстановим данните, когато имаме нужда от тях в бъдеще.
Синтаксис:
По-долу е синтаксисът, който илюстрира как да използвате оператора DELETE:
преименуване на папка linux
DELETE FROM table_name WHERE condition;
В горния оператор първо трябва да посочим името на таблицата, от която искаме да изтрием данни. Второ, трябва да посочим условието за изтриване на записи в клаузата WHERE, което не е задължително. Ако пропуснем клаузата WHERE в израза, тази заявка ще премахне цели записи от таблицата на базата данни.
Ако искаме да изтрием записи от множество таблици с помощта на една заявка DELETE, трябва да добавим ПРИСЪЕДИНЯВАНЕ клауза с командата DELETE.
Ако искаме да изтрием всички записи от таблица, без да знаем броя на изтритите редове, трябва да използваме СЪРЪЗНАТА ТАБЛИЦА изявление, което дава по-добра производителност.
Нека разберем как работи операторът DELETE MySQL чрез различни примери.
Примери за оператори MySQL DELETE
Тук ще използваме 'Служители' и 'плащане' таблици за демонстрация на оператора DELETE. Да предположим, че таблиците Служители и Плащания съдържат следните данни:
Ако искаме да изтрием служител, чийто emp_id е 107 , трябва да използваме оператора DELETE с клаузата WHERE. Вижте заявката по-долу:
ако иначе java
mysql> DELETE FROM Employees WHERE emp_id=107;
След изпълнението на заявката, тя ще върне резултата, както е показано на изображението по-долу. След като записът бъде изтрит, проверете таблицата с помощта на израза SELECT:
pyspark
Ако искаме да изтрием всички записи от таблицата, няма нужда да използваме клаузата WHERE с командата DELETE. Вижте кода по-долу и изхода:
В горния резултат можем да видим, че след премахване на всички редове таблицата Employees ще бъде празна. Това означава, че в избраната таблица няма налични записи.
MySQL клауза DELETE и LIMIT
Клаузата за ограничение на MySQL се използва за ограничаване на броя на връщаните редове от набора с резултати, вместо да извлича всички записи в таблицата. Понякога искаме да ограничим броя на редовете, които да бъдат изтрити от таблицата; в такъв случай ще използваме ОГРАНИЧЕНИЕ клауза, както следва:
DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count;
Трябва да се отбележи, че редът на редовете в MySQL таблица не е определен. Затова винаги трябва да използваме ПОДРЕДЕНИ ПО клауза, докато използвате клаузата LIMIT.
Например , следната заявка първо сортира служителите според техните имена по азбучен ред и изтрива първите трима служители от таблицата:
mysql> DELETE FROM Employees ORDER BY name LIMIT 3;
Той ще даде следния резултат:
MySQL клауза DELETE и JOIN
Клаузата JOIN се използва за добавяне на две или повече таблици в MySQL. Ще добавим клаузата JOIN с оператора DELETE, когато искаме да изтрием записи от множество таблици в рамките на една заявка. Вижте заявката по-долу:
mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102;
Изход:
След изпълнението ще видим резултата като изображението по-долу:
показване на скрити приложения
За да прочетете повече информация за оператора DELETE с клаузата JOIN, Натисни тук .