PostgreSQL Існує з прикладом вибору, вставлення, оновлення та видалення

Що існує в PostgreSQL?

Команда PostgreSQL ІСНУЄТЬСЯ оператор перевіряє, чи існує рядок(и) у підзапиті. Це означає, що оператор використовується разом із підзапитом. Оператор Exists вважається виконаним, якщо в підзапиті знайдено принаймні один рядок. Цю операцію можна використовувати разом із операторами SELECT, UPDATE, INSERT і DELETE.

Синтаксис запиту Postgres Exists

Ось синтаксис для PostgreSQL EXISTS оператор:

WHERE EXISTS (subquery);

Наведений вище синтаксис показує, що оператор EXISTS приймає аргумент, який є підзапитом. Підзапит - це просто a Оператор SELECT який повинен починатися з SELECT * замість списку імен стовпців або виразів.

PostgreSQL Існує з інструкцією SELECT

Давайте подивимося, як використовувати оператор SELECT з оператором EXISTS. У нас є такі таблиці:

Книга:

PostgreSQL Існує з інструкцією SELECT

Ціна:

PostgreSQL Існує з інструкцією SELECT

Виконайте наступний оператор:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

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

PostgreSQL Існує з інструкцією SELECT

Наведена вище команда має повернути всі записи в таблиці Book, ідентифікатор яких збігається з ідентифікатором будь-яких записів за підзапитом. Збігся лише один ідентифікатор. Таким чином, було повернуто лише один запис.

PostgreSQL Існує з інструкцією INSERT

Ми можемо використовувати оператор EXISTS в Оператор INSERT. У нас є такі 3 таблиці:

Книга:

PostgreSQL Існує з інструкцією INSERT

Ціна:

PostgreSQL Існує з інструкцією INSERT

Ціна 2:

PostgreSQL Існує з інструкцією INSERT

Потім ми можемо запустити такий оператор:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

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

PostgreSQL Існує з інструкцією INSERT

Знайдено рядок з ідентифікатором 5 у таблиці під назвою Price2. Потім цей запис було вставлено в таблицю цін.

Postgres існує з оператором 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);

Postgres існує з оператором UPDATE

Ми оновлюємо стовпець цін таблиці цін. Наша мета полягає в тому, щоб ціни на товари, що мають спільний ідентифікатор, були однаковими. Збігся лише один рядок, тобто 5.

Однак, оскільки ціни однакові, тобто 205, оновлення не проводилося. Якби була різниця, було б зроблено оновлення.

Postgres існує з оператором DELETE

A PostgreSQL Оператор DELETE може використовувати оператор EXISTS. Ось приклад:

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

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

Postgres існує з оператором DELETE

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

PostgreSQL Існує заява з використанням pgAdmin

Тепер давайте подивимося, як ці дії можна виконати за допомогою pgAdmin:

Як використовувати запит Exists у PostgreSQL з інструкцією SELECT за допомогою pgAdmin

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

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

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

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

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

PostgreSQL Існує заява з використанням pgAdmin

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

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

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

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

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

PostgreSQL Існує заява з використанням pgAdmin

Він повинен повернути наступне:

PostgreSQL Існує заява з використанням pgAdmin

З інструкцією INSERT

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

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

Крок 2)

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

Існує заява в PostgreSQL за допомогою pgAdmin

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

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

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

Існує заява в PostgreSQL за допомогою pgAdmin

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

Існує заява в PostgreSQL за допомогою pgAdmin

З заявою UPDATE

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

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

Крок 2)

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

Існує заява в PostgreSQL за допомогою pgAdmin

Крок 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) Натисніть кнопку Виконати.

PostgreSQL Існує заява з використанням pgAdmin

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

PostgreSQL Існує заява з використанням pgAdmin

З інструкцією DELETE

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

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

Крок 2)

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

PostgreSQL Існує заява з використанням pgAdmin

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

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

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

PostgreSQL Існує заява з використанням pgAdmin

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

PostgreSQL Існує заява з використанням pgAdmin

Підсумки

  • Оператор EXISTS перевіряє, чи існує рядок(и) у підзапиті.
  • Він використовується з підзапитом і вважається виконаним, коли підзапит повертає принаймні один рядок.
  • Він використовується разом із операторами SELECT, UPDATE, INSERT і DELETE.

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