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 в an оператор 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

Редът с 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);

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

Редът с id 5 е изтрит.

PostgreSQL Изявление Exists с помощта на pgAdmin

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

Как да използвате Exists Query в PostgreSQL с оператор SELECT с помощта на pgAdmin

По-долу са описани стъпките за използване на заявката Exists PostgreSQL с оператор SELECT с помощта на pgAdmin:

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

Отворете pgAdmin и влезте в акаунта си, като използвате вашите идентификационни данни

Стъпка 2) Създайте демонстрационна база данни

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

PostgreSQL Изявление Exists с помощта на pgAdmin

Стъпка 3) Въведете заявката

Въведете следната заявка в редактора на заявки:

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

Стъпка 4) Изпълнете заявката

Щракнете върху бутона Изпълнение

PostgreSQL Изявление Exists с помощта на pgAdmin

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

PostgreSQL Изявление Exists с помощта на 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 Изявление Exists с помощта на pgAdmin

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

PostgreSQL Изявление Exists с помощта на pgAdmin

С командата DELETE

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

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

Стъпка 2)

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

PostgreSQL Изявление Exists с помощта на pgAdmin

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

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

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

PostgreSQL Изявление Exists с помощта на pgAdmin

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

PostgreSQL Изявление Exists с помощта на pgAdmin

Oбобщение

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

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