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. Розглянемо таблицю цін з такими даними:
ціна
Видалимо запис з id 4:
DELETE FROM Price WHERE id = 4;
Наведена вище команда видалить записи з ідентифікатором 4. Давайте перевіримо, чи було видалення успішним:
Рядок з ідентифікатором 4 видалено.
Видалення запиту з двома умовами
Команда PostgreSQL Оператор DELETE може мати дві умови. Дві умови слід об’єднати за допомогою оператора І. Ми будемо використовувати наступну таблицю:
Ціна:
Розглянемо наведений нижче приклад:
DELETE FROM Price WHERE id = 3Y AND price = 300;
У наведеній вище команді ми видаляємо рядок, у якому id дорівнює 3, а price – 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 з ідентифікатором, що відповідає ідентифікатору таблиці Book, і ціною менше 250.
Таблиця Книги тепер має такий вигляд:
Запис з ідентифікатором 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. Дві умови слід об’єднати за допомогою оператора І.
- Команда ІСНУЄТЬСЯ умова може допомогти нам видалити записи з таблиці на основі записів іншої таблиці.
Завантажте базу даних, яка використовується в цьому посібнику