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

Содержание:

Anonim

Что такое PostgreSQL Exists?

Оператор 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.

Загрузите базу данных, используемую в этом руководстве