PostgreSQL Съществува с пример за избор, вмъкване, актуализиране и изтриване
Какво е съществува в PostgreSQL?
- PostgreSQL СЪЩЕСТВУВА оператор тества дали ред(ове) съществува(т) в подзаявка. Това означава, че операторът се използва заедно с подзаявка. Твърди се, че операторът Exists е изпълнен, когато в подзаявката бъде намерен поне един ред. Можете да използвате тази операция заедно с изрази SELECT, UPDATE, INSERT и DELETE.
Синтаксис на заявката за Postgres Exists
Ето синтаксиса за PostgreSQL Изявление EXISTS:
WHERE EXISTS (subquery);
Горният синтаксис показва, че операторът EXISTS приема аргумент, който е подзаявка. Подзаявката е просто a SELECT израз който трябва да започва с SELECT * вместо списък с имена на колони или изрази.
PostgreSQL Съществува с оператор SELECT
Нека видим как да използваме оператор SELECT с оператора EXISTS. Имаме следните таблици:
Книга:
Цена:
Изпълнете следния оператор:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Това връща следното:
Горната команда трябва да върне всички записи в таблицата Book, чийто идентификатор съвпада с идентификатора на всички записи от подзаявката. Съпоставен е само един идентификатор. Следователно беше върнат само един запис.
PostgreSQL Съществува с оператор INSERT
Можем да използваме оператора EXISTS в an оператор INSERT. Имаме следните 3 таблици:
Книга:
Цена:
Цена2:
След това можем да изпълним следния оператор:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Ценовата таблица вече е както следва:
Редът с 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);
Ценовата таблица вече е както следва:
Редът с id 5 е изтрит.
PostgreSQL Изявление Exists с помощта на pgAdmin
Сега нека видим как тези действия могат да бъдат извършени с pgAdmin:
Как да използвате Exists Query в 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) Щракнете върху бутона Изпълнение.
Ценовата таблица сега трябва да бъде както следва:
С изявление UPDATE
За да постигнете същото чрез 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) Щракнете върху бутона Изпълнение.
Ценовата таблица сега трябва да бъде както следва:
Oбобщение
- Операторът EXISTS проверява дали ред(ове) съществува в подзаявка.
- Използва се с подзаявка и се казва, че е изпълнена, когато подзаявката върне поне един ред.
- Използва се заедно с изрази SELECT, UPDATE, INSERT и DELETE.
Изтеглете базата данни, използвана в този урок