Как удалить данные из таблицы sql oracle
Перейти к содержимому

Как удалить данные из таблицы sql oracle

  • автор:

Артём Санников

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

Главная › Базы данных › MySQL › Манипуляция с данными › Удаление данных в SQL, команда DELETE

Удаление данных в SQL, команда DELETE

Для удаление данных из таблицы предназначена инструкция DELETE . Данную команду можно использовать двумя способами: удаление определенных строк и удаление всех строк из таблицы.

Чтобы правильно удалить данные из таблицы, нужно использовать условие WHERE для выборки.

Важно: Если не будет указано условие WHERE , вы удалите все строки из таблицы.

Обратите внимание: инструкция DELETE удаляет только данные из таблицы, но она никогда не удаляет саму таблицу.

Если необходимо удалить все строки из таблицы, не нужно использовать команду DELETE . Для этого существует команда TRUNCATE TABLE , которая делает тоже самое, но гораздо быстрее (благодаря тому, что не регистрирует изменение данных в журнале СУБД).

Синтаксис DELETE

DELETE FROM имя_таблицы WHERE условие;

Примеры запросов

Таблица SQL

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. Основные ключевые слова и параметры команды 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 / Фиксация обновлений завершена.

Оператор DMLDELETE как видим совершенно безукоризненно выполнил свою работу. Теперь давайте удалим все из таблицы 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. Можете попробовать еще раз все с самого начала для закрепления! 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *