PostgreSQL Удалить строки из выбранного списка
⚡ Умное резюме
PostgreSQL Оператор DELETE удаляет одну или несколько строк из таблицы, а в сочетании с условием WHERE он применяется только к записям, соответствующим условию, в то время как отсутствие условия WHERE очищает все строки в таблице.

Удалить запрос в PostgreSQL
УДАЛИТЬ оператор in PostgreSQL Используется для удаления одной или нескольких записей из таблицы. Чтобы удалить только выбранные строки из таблицы, PostgreSQL Позволяет комбинировать оператор DELETE с условием WHERE; в противном случае удаляет все записи в таблице.
PostgreSQL Удалить синтаксис запроса
Оператор DELETE можно определить, используя следующий синтаксис:
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
Параметры
Доступны следующие параметры:
- с запросомПредложение WITH позволяет ссылаться на один или несколько подзапросов по имени внутри запроса DELETE.
- имя-таблицы: имя таблицы, из которой необходимо удалить записи.
- псевдоним: замена имени целевой таблицы.
- используя список: табличные выражения, позволяющие использовать столбцы из других таблиц в предложении WHERE.
- условия): необязательно. Это условия, которые должны быть выполнены для удаления записей. Если этот раздел не указан, будут удалены все записи с именем таблицы.
- имя курсора: курсор, используемый в условии WHERE CURRENT OF. Последняя строка, полученная с помощью этого курсора, будет удалена.
- выходное выражение: выражение, которое будет обработано и возвращено оператором DELETE после удаления каждой строки.
- имя вывода: имя, которое будет использоваться для возвращаемого столбца.
Обратите внимание, что поскольку оператор DELETE удаляет всю строку целиком, указывать имена столбцов не требуется.
PostgreSQL Удалить запрос с одним условием
Оператор DELETE можно использовать с одним условием, которое задается с помощью предложения WHERE. Рассмотрим таблицу Price со следующими данными:
Цена:
Удалим запись с идентификатором 4:
DELETE FROM Price WHERE id = 4;
Приведенная выше команда удаляет записи, в которых идентификатор равен 4. Давайте проверим, было ли удаление успешным:
Строка с идентификатором 4 была удалена.
Удалить запрос с двумя условиями
PostgreSQL Оператор DELETE также может принимать два условия. Эти два условия следует объединить с помощью оператора AND. Мы будем использовать следующую таблицу:
Цена:
Рассмотрим пример, приведенный ниже:
DELETE FROM Price WHERE id = 3 AND price = 300;
В приведенной выше команде мы удаляем строку, в которой идентификатор равен 3, а цена — 300. Теперь мы можем выполнить запрос к таблице:
SELECT * FROM Price;
Это возвращает следующее:
Запись с идентификатором 3 и ценой 300 была удалена.
PostgreSQL Запрос на удаление с использованием условия EXISTS
Достаточно воспользоваться ИИ-ассистентом СУЩЕСТВУЕТ В зависимости от условий, вы можете усложнить операцию DELETE. Иногда может возникнуть необходимость удалить записи в одной таблице на основании записей в другой таблице.
Поскольку предложение FROM не позволяет перечислять записи из более чем одной таблицы при выполнении удаления, предложение EXISTS становится очень полезным. У нас есть следующие две таблицы:
Книга:
Цена:
Затем мы можем запустить следующий запрос:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Эта команда удаляет из таблицы Book строки, имеющие совпадающий идентификатор в таблице Price с ценой ниже 250.
Таблица Book теперь выглядит следующим образом:
Запись с идентификатором 1 была удалена.
Как удалить строку в PostgreSQL используя pgAdmin
Те же запросы на удаление можно выполнить визуально через интерфейс pgAdmin, следуя приведенным ниже инструкциям:
При одном условии
Шаг 1) Войдите в свою учетную запись pgAdmin. Откройте pgAdmin и войдите в свою учетную запись, используя свои учетные данные.
Шаг 2) Создайте демонстрационную базу данных.
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите приведенный ниже запрос в редакторе запросов:
DELETE FROM Price WHERE id = 4;
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Давайте проверим, была ли удалена эта строка:
При двух условиях
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
DELETE FROM Price WHERE id = 3 AND price = 300;
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Проверим, прошло ли удаление успешно:
Использование условия EXISTS
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Проверим, прошло ли удаление успешно:
Загрузите базу данных, используемую в этом руководстве.
















