PostgreSQL ІСНУЄ з SELECT Operaтор (Приклад)
⚡ Розумний підсумок
PostgreSQL EXISTS – це логічний оператор, який перевіряє, чи корельований підзапит повертає будь-який рядок, дозволяючи операторам SELECT, INSERT, UPDATE та DELETE ефективно фільтрувати дані за наявністю або відсутністю відповідних записів.

Що ІСНУЄ в PostgreSQL?
Команда PostgreSQL ІСНУЄТЬСЯ Оператор перевіряє, чи існує рядок(ки) у підзапиті. Це означає, що оператор використовується разом із підзапитом. Вважається, що оператор EXISTS виконано, коли в підзапиті знайдено принаймні один рядок. Цю операцію можна використовувати разом з операторами SELECT, UPDATE, INSERT та DELETE.
PostgreSQL Синтаксис запиту EXISTS
Ось синтаксис для PostgreSQL EXISTS оператор:
WHERE EXISTS (subquery);
Наведений вище синтаксис показує, що оператор EXISTS приймає аргумент, який є підзапитом. Підзапит - це просто a Оператор SELECT який повинен починатися з SELECT * замість списку імен стовпців або виразів.
PostgreSQL ІСНУЄ з оператором SELECT
Давайте розглянемо, як використовувати оператор SELECT з оператором EXISTS. У нас є такі таблиці:
Книга:
Ціна:
Виконайте наступний оператор:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Це повертає наступне:
Наведена вище команда має повернути всі записи в таблиці Book, ідентифікатор яких збігається з ідентифікатором будь-яких записів за підзапитом. Збігся лише один ідентифікатор. Таким чином, було повернуто лише один запис.
PostgreSQL ІСНУЄ з оператором INSERT
Ми можемо використовувати оператор EXISTS в Оператор INSERT. У нас є такі 3 таблиці:
Книга:
Ціна:
Ціна 2:
Потім ми можемо запустити такий оператор:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Тепер таблиця цін виглядає так:
Знайдено рядок з ідентифікатором 5 у таблиці під назвою Price2. Потім цей запис було вставлено в таблицю цін.
PostgreSQL ІСНУЄ з оператором UPDATE
Ми можемо використовувати оператор EXISTS в операторі UPDATE.
Виконайте наступний запит:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
Ми оновлюємо стовпець цін таблиці цін. Наша мета полягає в тому, щоб ціни на товари, що мають спільний ідентифікатор, були однаковими. Збігся лише один рядок, тобто 5.
Однак, оскільки ціни однакові, тобто 205, оновлення не проводилося. Якби була різниця, було б зроблено оновлення.
PostgreSQL ІСНУЄ з оператором DELETE
A PostgreSQL Оператор DELETE може використовувати оператор EXISTS. Ось приклад:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Тепер таблиця цін виглядає так:
Рядок з ідентифікатором 5 видалено.
PostgreSQL Оператор EXISTS з використанням pgAdmin
Поза межами оболонки SQL, ті ж самі запити EXISTS можна виконувати візуально через інтерфейс pgAdmin. Тепер давайте подивимося, як ці дії можна виконати за допомогою pgAdmin:
З інструкцією SELECT
Нижче наведено кроки для використання запиту EXISTS у PostgreSQL за допомогою оператора SELECT, використовуючи pgAdmin:
Крок 1) Увійдіть до свого облікового запису pgAdmin. Відкрийте pgAdmin та увійдіть до свого облікового запису, використовуючи свої облікові дані.
Крок 2) Створіть демонстраційну базу даних.
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть наведений нижче запит у редакторі запитів:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Крок 4) Натисніть кнопку Виконати.
Він повинен повернути наступне:
З інструкцією INSERT
Щоб зробити те саме через pgAdmin, виконайте наступне:
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Крок 4) Натисніть кнопку Виконати.
Тепер таблиця цін має виглядати так:
З заявою UPDATE
Щоб зробити те саме через pgAdmin, виконайте наступне:
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
UPDATE Price SET price = (SELECT price FROM Price2 WHERE Price2.id = Price.id) WHERE EXISTS (SELECT id, price FROM Price2 WHERE Price2.id = Price.id);
Крок 4) Натисніть кнопку Виконати.
Тепер таблиця цін має виглядати так:
З інструкцією DELETE
Щоб зробити те саме через pgAdmin, виконайте наступне:
Крок 1) Увійдіть у свій обліковий запис pgAdmin.
Крок 2)
- На панелі навігації ліворуч натисніть Бази даних.
- Натисніть Демо.
Крок 3) Введіть запит у редакторі запитів:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Крок 4) Натисніть кнопку Виконати.
Тепер таблиця цін має виглядати так:
Завантажте базу даних, яка використовується в цьому посібнику





















