Артём Санников
Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Главная › Базы данных › MySQL › Манипуляция с данными › Удаление данных в SQL, команда DELETE
Удаление данных в SQL, команда DELETE
Для удаление данных из таблицы предназначена инструкция DELETE . Данную команду можно использовать двумя способами: удаление определенных строк и удаление всех строк из таблицы.
Чтобы правильно удалить данные из таблицы, нужно использовать условие WHERE для выборки.
Важно: Если не будет указано условие WHERE , вы удалите все строки из таблицы.
Обратите внимание: инструкция DELETE удаляет только данные из таблицы, но она никогда не удаляет саму таблицу.
Если необходимо удалить все строки из таблицы, не нужно использовать команду DELETE . Для этого существует команда TRUNCATE TABLE , которая делает тоже самое, но гораздо быстрее (благодаря тому, что не регистрирует изменение данных в журнале СУБД).
Синтаксис DELETE
DELETE FROM имя_таблицы WHERE условие;
Примеры запросов

1. Удалить все строки в таблице
DELETE FROM workers;
2. Удалить сотрудника идентификатор которого равен 4
DELETE FROM workers WHERE >3. Удалить сотрудников, которые работают в Екатеринбурге
DELETE FROM workers WHERE city = 'Екатеринбург';
4. Удалить сотрудников женского пола, у которых возраст больше 40
DELETE FROM workers WHERE sex = 'Женский' AND age > 40;
Записи по теме
- Обновление данных в SQL, команда UPDATE
- Копирование данных в SQL, команда SELECT INTO
- Добавление данных в SQL, команда INSERT
SQL DELETE
Команда DELETE удаляет строки (записи) из таблицы или представления основной таблицы базы данных, например, в MySQL, Oracle.
Команда DELETE. Синтаксис команды DELETE

Команда DELETE. Основные ключевые слова и параметры команды DELETE
- schema — идентификатор полномочий, обычно совпадающий с именем некоторого пользователя
- table view — имя таблицы, из которой удаляются строки; если определяется представление, сервер удаляет строки из основной таблицы представления
- subquery — подзапрос, с помощью которого выбираются строки для удаления; сервер выполняет подзапрос и использует строки его результата как таблицу фразы FROM
- WHERE — удаляет только строки, которые удовлетворяют условию; условие может ссылаться на таблицу и содержать подзапрос.
При выдаче утверждения DELETE включается любой DELETE-триггер, определенный на таблице.
Команда DELETE Пример №1Удаление всех строк из таблицы:
DELETE FROM temp_assign;
В данном примере команда DELETE удаляет все строки без исключения.
Команда DELETE Пример №2.Удаляет из таблицы всех продавцов, у которых комиссионные меньше 100 у.е. в месяц:
DELETE FROM emp WHERE JOB = ‘SALESMAN’ AND COMM < 100;
В данном примере команда DELETE удаляет все строки, которые попадают под условие JOB = ‘SALESMAN’ AND COMM < 100;
Команда DELETE Пример №3Предыдущий пример можно записать по-другому:
DELETE FROM (select * from emp) WHERE job = ‘SALESMAN’ AND comm < 100;
Для удаления всех записей в MySQL можно использовать следующую команду DELETE:
Артём Санников
Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Главная › Базы данных › Oracle PL/SQL › DML команды › Команда DELETE в PL/SQL Oracle
Команда DELETE в PL/SQL Oracle
Команда DELETE в PL/SQL Oracle позволяет удалить одну, несколько или все строки находящиеся в таблице.
Синтаксис команды DELETE
Обратите внимание: выражение WHERE не является обязательным параметром для выполнения команды, но если вы выполните команду DELETE без WHERE , то ваша таблица будет полностью очищена.
DELETE FROM имя_таблицы WHERE условие_для_удаления;
Записи по теме
- Команда UPDATE в PL/SQL Oracle
- Команда INSERT в PL/SQL Oracle
- Команда MERGE в PL/SQL Oracle
Как удалить данные из таблицы sql oracle
Наполнять таблицу данными задача для нас не такая сложная. А вот теперь, если какие-либо данные нужно, скажем, удалить из таблицы? Вопрос достаточно тривиален. Для этого в языке DML — есть оператор DELETE. Вот так выглядит его синтаксис:
---------------- DELETE FROM --- таблица --- * псевдоним * --------------------------------- -------------------------------- (имя столбца таблицы) ------------------------------------- ----------------- WHERE -------- условие ---------------------------------------------------
Как мы видим в операторе DELETE так же есть часть определения условия WHERE. То есть все, что мы использовали ранее для описания работы WHERE в операторе SELECT, применимо и здесь. Допустим нам нужно удалить запись с номером три. Записываем:
DELETE FROM PEOPLE WHERE >Получаем:
SQL> DELETE FROM PEOPLE 2 WHERE 3 / 1 строка удалена. SQL> COMMIT 2 / Фиксация обновлений завершена.
Оператор DML — DELETE как видим совершенно безукоризненно выполнил свою работу. Теперь давайте удалим все из таблицы PEOPLE. Записываем:
DELETE FROM PEOPLE / COMMIT /
SQL> DELETE FROM PEOPLE 2 / 5 строк удалено. SQL> COMMIT 2 / Фиксация обновлений завершена.
Теперь из таблицы PEOPLE удалены все записи, которые мы вводили ранее. Да! Давайте еще раз вернемся к NULL для того, чтобы посмотреть как он ведет себя здесь. Введем уже знакомым нам с вам способом, три записи в таблицу PEOPLE со значениями NULL:
INSERT INTO PEOPLE(ID, NM, FM, OT) VALUES(1, NULL, 'Godwin', 'Petrovich') / INSERT INTO PEOPLE(ID, NM, FM, OT) VALUES(2, 'Bob', NULL, 'Martovich') / INSERT INTO PEOPLE(ID, NM, FM, OT) VALUES(3, 'Frank', 'Black', NULL) / COMMIT /
SQL> INSERT INTO PEOPLE(ID, NM, FM, OT) 2 VALUES(1, NULL, 'Godwin', 'Petrovich') 3 / 1 строка создана. SQL> INSERT INTO PEOPLE(ID, NM, FM, OT) 2 VALUES(2, 'Bob', NULL, 'Martovich') 3 / 1 строка создана. SQL> INSERT INTO PEOPLE(ID, NM, FM, OT) 2 VALUES(3, 'Frank', 'Black', NULL) 3 / 1 строка создана. SQL> COMMIT 2 / Фиксация обновлений завершена.
Теперь в таблице PEOLPLE в трех разных записях присутствует значение NULL. Допустим вы хотите удалить записи со значением NULL в поле NM таблицы PEOPLE. Тогда записываем:
DELETE FROM PEOPLE WHERE NM IS NULL / COMMIT /
SQL> DELETE FROM PEOPLE 2 WHERE NM IS NULL 3 / 1 строка удалена. SQL> COMMIT 2 / Фиксация обновлений завершена.
Запись такого типа одна и она удалена оператором DELETE. Для закрепления пройденного давайте проделаем следующее. Очистим таблицу OLD_PEOPLE и заполним ее остатками записей в таблице PEOPLE. Записываем:
DELETE FROM OLD_PEOPLE / COMMIT /
SQL> DELETE FROM OLD_PEOPLE 2 / 6 строк удалено. SQL> COMMIT 2 / Фиксация обновлений завершена.
Таблица OLD_PEOPLE очищена и пуста. Вводим далее такое выражение:
INSERT INTO OLD_PEOPLE SELECT * FROM PEOPLE / COMMIT /
SQL> INSERT INTO OLD_PEOPLE 2 SELECT * FROM PEOPLE 3 / 2 строк создано. SQL> COMMIT 2 / Фиксация обновлений завершена.
Вот таким образом в обоих наших тренировочных табличках на текущий момент по две одинаковых записи. Вот так достаточно просто работает оператор DELETE. Можете попробовать еще раз все с самого начала для закрепления! 🙂