6K подписчиков

PostgreSQL. Команда SQL DELETE

Вот здесь на материалы моего канала Old Programmer: Программирование. Тематическое оглавление моего Zen-канала (Old Programmer).

  • Список разделов канала Old Programmer, канала о программировании и программистах

Мои материалы по языку SQL и серверу PostgreSQL здесь.

  • PostgreSQL. Команда SQL INSERT
  • Язык SQL. Путеводитель по материалам канала Old Programmer
  • Начала SQL. Команда DELETE

Обычные условия в команде DELETE SQL

Стандартное использование команды delete имеет вид

delete from <имя таблицы>
where <условие>


Да, я опускаю другие элементы данной команды, потому как они используются гораздо реже, да и в принципе не обязательны. Раздел where можно, конечно, и вообще опустить, но тогда будут удалены все записи таблицы.

Вот пример типичного использования команды delete.

delete from marks
where dt>'23.11.2020' and dt<'31.12.202';

Будут удалены все записи у которых поле dt (дата) находится в заданном промежутке.

Сложные условия удаления в DELETE SQL, EXISTS

Более сложные запросы предполагают, что при выборе записей для удаления из данной таблицы также можем учитывать содержимое других таблиц. Этот подход полностью основывается на том факте, что можем использовать разделе where команду или команды SQL select, при чем при необходимости и вложенные запросы. Понятно, что в этом случае условие может быть сколь угодно сложным. Например

delete from marks
where id_s in (select a.id from students a inner join facult b on a.id_f=b.id and b.name='Физики')

Удалению подлежат все записи об оценках студентов указанного факультета.

Иногда в разделе where используется функция exists(), которая возвращает истину, если запрос в ней дает хотя бы одну запись - существует. Например так

delete from tb1
where tb1.namber>10 and exists(select * from msg)

Упражняйтесь в языке SQL и читайте мои статьи. Подписывайтесь на мой канал Old Programmer.

Список разделов канала Old Programmer, канала о программировании и программистах

Изображение в свободном доступе в Интернет
Изображение в свободном доступе в Интернет