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. Розглянемо таблицю цін з такими даними:

ціна

PostgreSQL Видалити запит з однією умовою

Видалимо запис з id 4:

DELETE FROM Price
WHERE id = 4;

Наведена вище команда видалить записи з ідентифікатором 4. Давайте перевіримо, чи було видалення успішним:

PostgreSQL Видалити запит з однією умовою

Рядок з ідентифікатором 4 видалено.

Видалення запиту з двома умовами

Команда PostgreSQL Оператор DELETE може мати дві умови. Дві умови слід об’єднати за допомогою оператора І. Ми будемо використовувати наступну таблицю:

Ціна:

PostgreSQL Видалення запиту з двома умовами

Розглянемо наведений нижче приклад:

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

У наведеній вище команді ми видаляємо рядок, у якому id дорівнює 3, а price – 300. Тепер ми можемо запитати таблицю:

SELECT * FROM Price

Це повертає наступне:

PostgreSQL Видалення запиту з двома умовами

Запис з ідентифікатором 3 і ціною 300 було видалено.

PostgreSQL Видалити запит за допомогою умови «Існує».

За допомогою умови EXISTS ви можете зробити DELETE більш складним. Іноді може виникнути необхідність видалити записи в одній таблиці на основі записів в іншій таблиці.

Ви побачите, що речення FROM не дозволяє вам перелічувати записи з кількох таблиць під час виконання видалення, речення EXISTS стає дуже корисним. Маємо наступні дві таблиці:

Книга:

PostgreSQL Видалити запит за допомогою умови «Існує».

Ціна:

PostgreSQL Видалити запит за допомогою умови «Існує».

Потім ми можемо виконати такий запит:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Наведена вище команда видалить із таблиці Book запис, у якому існує запис у таблиці Price з ідентифікатором, що відповідає ідентифікатору таблиці Book, і ціною менше 250.

Таблиця Книги тепер має такий вигляд:

PostgreSQL Видалити запит за допомогою умови «Існує».

Запис з ідентифікатором 1 видалено.

Як видалити рядок у PostgreSQL за допомогою pgAdmin

Нижче наведено кроки для видалення рядка PostgreSQL за допомогою pgAdmin:

З однією умовою

Щоб зробити те саме через pgAdmin, виконайте наступне:

Крок 1) Увійдіть у свій обліковий запис pgAdmin

Відкрийте pgAdmin і увійдіть у свій обліковий запис, використовуючи облікові дані

Крок 2) Створіть демонстраційну базу даних

  1. На панелі навігації ліворуч натисніть Бази даних.
  2. Натисніть Демо.

Видалити рядок у PostgreSQL

Крок 3) Введіть запит

Введіть наведений нижче запит у редакторі запитів:

DELETE FROM Price
WHERE id = 4;

Крок 4) Виконайте запит

Натисніть кнопку Виконати

Видалити рядок у PostgreSQL

Крок 5) Перевірте, чи рядок видалено

Давайте перевіримо, чи вдалося видалення:

Видалити рядок у PostgreSQL

З двома умовами

Щоб зробити те саме через pgAdmin, виконайте наступне:

Крок 1) Увійдіть у свій обліковий запис pgAdmin.

Крок 2)

  1. На панелі навігації ліворуч натисніть Бази даних.
  2. Натисніть Демо.

Видалити рядок у PostgreSQL

Крок 3) Введіть запит у редакторі запитів:

DELETE FROM Price
WHERE id = 3
AND price = 300;

Крок 4) Натисніть кнопку Виконати.

Видалити рядок у PostgreSQL

Крок 5) Давайте перевіримо, чи вдалося видалення:

Видалити рядок у PostgreSQL

Використання умови EXISTS

Щоб зробити те саме через pgAdmin, виконайте наступне:

Крок 1) Увійдіть у свій обліковий запис pgAdmin.

Крок 2)

  1. На панелі навігації ліворуч натисніть Бази даних.
  2. Натисніть Демо.

Видалити рядок за допомогою умови EXISTS

Крок 3) Введіть запит у редакторі запитів:

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

Крок 4) Натисніть кнопку Виконати.

Видалити рядок за допомогою умови EXISTS

Крок 5) Давайте перевіримо, чи вдалося видалення:

Видалити рядок за допомогою умови EXISTS

Підсумки

  • Інструкція DELETE використовується для видалення одного або кількох записів із таблиці.
  • Щоб видалити лише вибрані рядки з таблиці, ви можете поєднати оператор DELETE з реченням WHERE.
  • Якщо речення DELETE використовується без речення WHERE, воно видаляє всі записи з таблиці.
  • Параметр table-name дозволяє додати назву таблиці, записи з якої потрібно видалити.
  • Ми можемо використовувати оператор DELETE з однією умовою, заданою за допомогою пропозиції WHERE.
  • Оператор DELETE також можна використовувати з двома умовами, указаними в реченні WHERE. Дві умови слід об’єднати за допомогою оператора І.
  • Команда ІСНУЄТЬСЯ умова може допомогти нам видалити записи з таблиці на основі записів іншої таблиці.

Завантажте базу даних, яка використовується в цьому посібнику