PostgreSQL Існує з прикладом вибору, вставлення, оновлення та видалення
Що існує в PostgreSQL?
Команда PostgreSQL ІСНУЄТЬСЯ оператор перевіряє, чи існує рядок(и) у підзапиті. Це означає, що оператор використовується разом із підзапитом. Оператор Exists вважається виконаним, якщо в підзапиті знайдено принаймні один рядок. Цю операцію можна використовувати разом із операторами SELECT, UPDATE, INSERT і DELETE.
Синтаксис запиту Postgres 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. Потім цей запис було вставлено в таблицю цін.
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);
Ми оновлюємо стовпець цін таблиці цін. Наша мета полягає в тому, щоб ціни на товари, що мають спільний ідентифікатор, були однаковими. Збігся лише один рядок, тобто 5.
Однак, оскільки ціни однакові, тобто 205, оновлення не проводилося. Якби була різниця, було б зроблено оновлення.
Postgres існує з оператором DELETE
A PostgreSQL Оператор DELETE може використовувати оператор EXISTS. Ось приклад:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Тепер таблиця цін виглядає так:
Рядок з ідентифікатором 5 видалено.
PostgreSQL Існує заява з використанням pgAdmin
Тепер давайте подивимося, як ці дії можна виконати за допомогою pgAdmin:
Як використовувати запит Exists у PostgreSQL з інструкцією SELECT за допомогою pgAdmin
Нижче наведено кроки для використання запиту 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) Натисніть кнопку Виконати.
Тепер таблиця цін має виглядати так:
Підсумки
- Оператор EXISTS перевіряє, чи існує рядок(и) у підзапиті.
- Він використовується з підзапитом і вважається виконаним, коли підзапит повертає принаймні один рядок.
- Він використовується разом із операторами SELECT, UPDATE, INSERT і DELETE.
Завантажте базу даних, яка використовується в цьому посібнику