PostgreSQL ІСНУЄ з прикладами

Зміст:

Anonim

Що таке 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)

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

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

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

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

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

З заявою INSERT

Щоб зробити те саме через pgAdmin, зробіть це:

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

Крок 2)

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

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

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

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

Таблиця цін тепер повинна бути такою:

З заявою UPDATE

Щоб зробити те саме через pgAdmin, зробіть це:

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

Крок 2)

  1. На панелі навігації ліворуч клацніть Бази даних.
  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)

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

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

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

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

Таблиця цін тепер повинна бути такою:

Резюме

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

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