PostgreSQL ВИДАЛИТИ рядки з виділеного елемента
⚡ Розумний підсумок
PostgreSQL Команда DELETE видаляє один або кілька рядків з таблиці, а поєднання її з реченням WHERE стосується лише записів, які відповідають умові, тоді як пропуск команди WHERE очищує всі рядки в таблиці.

Видалити запит в PostgreSQL
Команда Оператор DELETE 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 з такими даними:
Ціна:
Видалимо запис з id 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
З ІСНУЄТЬСЯ умову, ви можете ускладнити операцію ВИДАЛЕННЯ. Іноді може виникнути потреба видалити записи в одній таблиці на основі записів в іншій таблиці.
Оскільки речення FROM не дозволяє переглядати записи з більш ніж однієї таблиці під час видалення, речення EXISTS стає дуже корисним. У нас є такі дві таблиці:
Книга:
Ціна:
Потім ми можемо виконати такий запит:
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
Команда видаляє рядки з таблиці Book, які мають відповідний ідентифікатор у таблиці Price з ціною нижче 250.
Таблиця Книги тепер має такий вигляд:
Запис з ідентифікатором 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) Давайте перевіримо, чи вдалося видалення:
Завантажте базу даних, яка використовується в цьому посібнику
















