Вот здесь на материалы моего канала 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, канала о программировании и программистах