PostgreSQL EXISTS with SELECT Operaтор (Пример)
⚡ Умное резюме
PostgreSQL EXISTS — это логический оператор, который проверяет, возвращает ли связанный подзапрос хоть одну строку, позволяя операторам SELECT, INSERT, UPDATE и DELETE эффективно фильтровать данные по наличию или отсутствию соответствующих записей.

Что существует в PostgreSQL?
PostgreSQL СУЩЕСТВУЕТ Оператор EXISTS проверяет, существует ли строка (или строки) в подзапросе. Это означает, что оператор используется вместе с подзапросом. Считается, что оператор EXISTS выполнен, когда в подзапросе найдена хотя бы одна строка. Вы можете использовать эту операцию вместе с операторами SELECT, UPDATE, INSERT и DELETE.
PostgreSQL Синтаксис запроса EXISTS
Вот синтаксис для PostgreSQL СУЩЕСТВУЕТ заявление:
WHERE EXISTS (subquery);
Приведенный выше синтаксис показывает, что оператор EXISTS принимает аргумент, который является подзапросом. Подзапрос — это просто Оператор SELECT он должен начинаться с SELECT * вместо списка имен столбцов или выражений.
PostgreSQL EXISTS с оператором SELECT
Давайте посмотрим, как использовать оператор SELECT с оператором EXISTS. У нас есть следующие таблицы:
Книга:
Цена:
Выполните следующий оператор:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Это возвращает следующее:
Приведенная выше команда должна вернуть все записи в таблице Book, идентификатор которых соответствует идентификатору любой записи подзапроса. Сопоставлен только один идентификатор. Следовательно, была возвращена только одна запись.
PostgreSQL EXISTS with INSERT Statement
Мы можем использовать оператор 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. Затем эта запись была вставлена в таблицу цен.
PostgreSQL EXISTS с оператором 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, никакого обновления не было. Если бы была разница, было бы сделано обновление.
PostgreSQL EXISTS с оператором DELETE
A PostgreSQL Оператор DELETE может использовать оператор EXISTS. Вот пример:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Таблица цен теперь выглядит следующим образом:
Строка с идентификатором 5 была удалена.
PostgreSQL Оператор EXISTS с использованием pgAdmin
Помимо SQL-оболочки, те же запросы EXISTS можно выполнить визуально через интерфейс pgAdmin. Теперь давайте посмотрим, как эти действия можно выполнить с помощью pgAdmin:
С помощью оператора SELECT
Ниже описаны шаги по использованию запроса 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) Нажмите кнопку «Выполнить».
Таблица цен теперь должна выглядеть следующим образом:
С заявлением ОБНОВЛЕНИЯ
Чтобы сделать то же самое через 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) Нажмите кнопку «Выполнить».
Таблица цен теперь должна выглядеть следующим образом:
Загрузите базу данных, используемую в этом руководстве.





















