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