PostgreSQL СЪЩЕСТВУВА с примери

Съдържание:

Anonim

Какво съществува PostgreSQL съществува?

Операторът EXISTS тества дали в подзаявка съществуват редове. Това означава, че операторът се използва заедно с подзаявка. Казва се, че операторът Exists е изпълнен, когато в подзаявката е намерен поне един ред. Можете да използвате тази операция заедно с операторите SELECT, UPDATE, INSERT и DELETE.

В този урок за PostgreSQL ще научите следното:

  • Синтаксис
  • С SELECT Statement
  • С INSERT изявление
  • С АКТУАЛИЗИРАНО изявление
  • С изтриване на изявление
  • С pgAdmin

Синтаксис

Ето синтаксиса на оператора PostgreSQL EXISTS:

WHERE EXISTS (subquery);

Горният синтаксис показва, че операторът EXISTS приема аргумент, който е подзаявка. Подзаявката е просто оператор SELECT, който трябва да започва с SELECT * вместо със списък с имена на колони или изрази.

С SELECT Statement

Нека видим как да използваме оператор 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 беше съчетан. След това този запис беше вмъкнат в таблицата с цени.

С АКТУАЛИЗИРАНО изявление

Можем да използваме оператора EXISTS в оператор UPDATE.

Изпълнете следната заявка:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Актуализираме ценовата колона на таблицата Цени. Нашата цел е цените на артикулите, споделящи идентификатор, да бъдат еднакви. Съвпадаше само един ред, тоест 5.

Тъй като обаче цените са равни, т.е. 205, не е направена актуализация. Ако имаше разлика, щеше да бъде направена актуализация.

С изтриване на изявление

Оператор PostgreSQL DELETE може да използва оператора EXISTS. Ето пример:

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

Таблицата с цени вече е както следва:

Редът с идентификатор 5 е изтрит.

С pgAdmin

Сега нека видим как тези действия могат да бъдат извършени с помощта на pgAdmin.

С SELECT Statement

За да постигнете същото чрез 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) Щракнете върху бутона за изпълнение.

Таблицата с цени трябва да бъде както следва:

С АКТУАЛИЗИРАНО изявление

За да постигнете същото чрез 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) Щракнете върху бутона за изпълнение.

Таблицата с цени трябва да бъде както следва:

С изтриване на изявление

За да постигнете същото чрез pgAdmin, направете това:

Стъпка 1) Влезте във вашия pgAdmin акаунт.

Стъпка 2)

  1. От лентата за навигация вляво щракнете върху Бази данни.
  2. Щракнете върху Демо.

Стъпка 3) Въведете заявката в редактора на заявки:

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

Стъпка 4) Щракнете върху бутона за изпълнение.

Таблицата с цени трябва да бъде както следва:

Обобщение

  • Операторът EXISTS тества дали в подзаявка съществуват редове.
  • Използва се с подзаявка и се казва, че е изпълнена, когато подзаявката връща поне един ред.
  • Използва се заедно с инструкции SELECT, UPDATE, INSERT и DELETE.

Изтеглете базата данни, използвана в този урок