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