PostgreSQL Удалить запрос (удалить строки из выбора)
Удалить запрос в PostgreSQL
Территория Удалить заявление in PostgreSQL используется для удаления одной или нескольких записей из таблицы. Если вы хотите удалить выбранные строки из таблицы PostgreSQL позволяет вам объединить оператор DELETE с предложением WHERE, иначе он удалит все записи.
Синтаксис запроса на удаление Postgres
Оператор 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.
- имя-таблицы: имя таблицы, из которой необходимо удалить записи.
- псевдоним: это замена имени целевой таблицы.
- using-list: табличные выражения, позволяющие использовать столбцы из других таблиц в предложении WHERE.
- условия): необязательный. Это условия, которые должны быть выполнены для удаления записей. Если этот раздел не указан, все записи имен таблиц будут удалены.
- имя курсора: курсор, который будет использоваться в условии WHERE CURRENT OF. Последняя выбранная этим курсором строка будет удалена.
- выходное выражение: выражение, которое будет обработано и возвращено оператором DELETE после удаления каждой строки.
- имя вывода: имя, которое будет использоваться для возвращаемого столбца.
Обратите внимание: поскольку инструкция DELETE удаляет всю строку, вам не нужно указывать имена столбцов.
PostgreSQL Удалить запрос с одним условием
Оператор DELETE можно использовать с одним условием. Условие задается с помощью предложения WHERE. Рассмотрим таблицу цен со следующими данными:
Цена
Удалим запись с идентификатором 4:
DELETE FROM Price WHERE id = 4;
Приведенная выше команда удалит записи с идентификатором 4. Подтвердим, было ли удаление успешным:
Строка с идентификатором 4 была удалена.
Удалить запрос с двумя условиями
Территория PostgreSQL Оператор DELETE может принимать два условия. Два условия должны быть объединены с помощью оператора AND. Мы будем использовать следующую таблицу:
Цена:
Рассмотрим пример, приведенный ниже:
DELETE FROM Price WHERE id = 3Y 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, если в таблице цен существует запись с идентификатором, совпадающим с идентификатором таблицы Book, и ценой меньше 250.
Таблица Book теперь выглядит следующим образом:
Запись с идентификатором 1 была удалена.
Как удалить строку в PostgreSQL используя pgAdmin
Ниже приведены шаги для удаления строки в PostgreSQL используя pgAdmin:
С одним условием
Чтобы сделать то же самое через pgAdmin, сделайте следующее:
Шаг 1) Войдите в свою учетную запись pgAdmin.
Откройте pgAdmin и войдите в свою учетную запись, используя свои учетные данные.
Шаг 2) Создайте демонстрационную базу данных
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос
Введите приведенный ниже запрос в редакторе запросов:
DELETE FROM Price WHERE id = 4;
Шаг 4) Выполните запрос
Нажмите кнопку «Выполнить»
Шаг 5) Проверьте, удалена ли строка
Проверим, прошло ли удаление успешно:
С двумя условиями
Чтобы сделать то же самое через pgAdmin, сделайте следующее:
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
DELETE FROM Price WHERE id = 3 AND price = 300;
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Проверим, прошло ли удаление успешно:
Использование условия EXISTS
Чтобы сделать то же самое через pgAdmin, сделайте следующее:
Шаг 1) Войдите в свою учетную запись pgAdmin.
Шаг 2)
- На панели навигации слева нажмите «Базы данных».
- Нажмите Демо.
Шаг 3) Введите запрос в редакторе запросов:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Шаг 4) Нажмите кнопку «Выполнить».
Шаг 5) Проверим, прошло ли удаление успешно:
Резюме
- Оператор DELETE используется для удаления одной или нескольких записей из таблицы.
- Чтобы удалить из таблицы только выбранные строки, вы можете объединить оператор DELETE с предложением WHERE.
- Если предложение DELETE используется без предложения WHERE, оно удаляет все записи из таблицы.
- Параметр table-name позволяет добавить имя таблицы, из которой необходимо удалить записи.
- Мы можем использовать оператор DELETE с одним условием, указанным с помощью предложения WHERE.
- Оператор DELETE также можно использовать с двумя условиями, указанными в предложении WHERE. Два условия должны быть объединены с помощью оператора AND.
- Территория СУЩЕСТВУЕТ условие может помочь нам удалить записи из таблицы на основе записей другой таблицы.
Загрузите базу данных, используемую в этом руководстве.