Mi az a PostgreSQL létezik?
Az EXISTS operátor teszteli, hogy léteznek-e sorok egy allekérdezésben. Ez azt jelenti, hogy az operátort egy allekérdezéssel együtt használják. Állítólag az Exists operátor akkor teljesült, ha legalább egy sor megtalálható az allekérdezésben. Használhatja ezt a műveletet a SELECT, UPDATE, INSERT és DELETE utasításokkal együtt.
Ebben a PostgreSQL oktatóanyagban a következőket tanulja meg:
- Szintaxis
- A SELECT utasítással
- INSERT nyilatkozattal
- UPDATE nyilatkozattal
- DELETE nyilatkozattal
- A pgAdmin segítségével
Szintaxis
Itt található a PostgreSQL EXISTS utasítás szintaxisa:
WHERE EXISTS (subquery);
A fenti szintaxis azt mutatja, hogy az EXISTS operátor beír egy argumentumot, amely egy allekérdezés. Az allekérdezés egyszerűen egy SELECT utasítás, amelynek az oszlopnevek vagy kifejezések listája helyett egy SELECT * -vel kell kezdődnie.
A SELECT utasítással
Lássuk, hogyan kell használni a SELECT utasítást az EXISTS operátorral. A következő táblázatok vannak:
Könyv:
Ár:
Futtassa a következő állítást:
SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);
Ez a következőket adja vissza:
A fenti parancsnak vissza kell adnia a Book táblázat összes olyan rekordját, amelynek azonosítója megegyezik az allekérdezés bármely rekordjának azonosítójával. Csak egy azonosító került egyezésre. Ezért csak egy lemezt adtak vissza.
INSERT nyilatkozattal
Az EXISTS operátort INSERT utasításban használhatjuk. A következő 3 táblázat áll rendelkezésünkre:
Könyv:
Ár:
2. ár:
Ezután futtathatjuk a következő állítást:
INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);
Az Ár táblázat most a következő:
A Price2 nevű táblázat 5 azonosítójú sorával egyeztettek. Ezt a rekordot ezután beillesztették az Ár táblázatba.
UPDATE nyilatkozattal
Az EXISTS operátort használhatjuk egy UPDATE utasításban.
Futtassa a következő lekérdezést:
UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);
Frissítjük az Ár táblázat ároszlopát. Célunk, hogy az azonosítóval rendelkező termékek ára megegyezzen. Csak egy sor lett egyeztetve, vagyis 5.
Mivel azonban az árak azonosak, vagyis 205-ösek, nem történt frissítés. Ha volt különbség, akkor frissítés történt volna.
DELETE nyilatkozattal
A PostgreSQL DELETE utasítás használhatja az EXISTS operátort. Íme egy példa:
DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);
Az Ár táblázat most a következő:
Az 5 azonosítójú sort törölte.
A pgAdmin segítségével
Most nézzük meg, hogyan lehet ezeket a műveleteket végrehajtani a pgAdmin használatával.
A SELECT utasítással
Ha ugyanezt szeretné elérni a pgAdmin segítségével, tegye ezt:
1. lépés: Jelentkezzen be pgAdmin-fiókjába.
2. lépés)
- A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
- Kattintson a Demo elemre.
3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:
SELECT *FROM BookWHERE EXISTS (SELECT *FROM PriceWHERE Book.id = Price.id);
4. lépés) Kattintson az Execute gombra.
Ennek vissza kell adnia a következőket:
INSERT nyilatkozattal
Ha ugyanezt szeretné elérni a pgAdmin segítségével, tegye ezt:
1. lépés: Jelentkezzen be pgAdmin-fiókjába.
2. lépés)
- A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
- Kattintson a Demo elemre.
3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:
INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);
4. lépés) Kattintson az Execute gombra.
Az ártáblának most a következőnek kell lennie:
UPDATE nyilatkozattal
Ha ugyanezt szeretné elérni a pgAdmin segítségével, tegye ezt:
1. lépés: Jelentkezzen be pgAdmin-fiókjába.
2. lépés)
- A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
- Kattintson a Demo elemre.
3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:
UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);
4. lépés) Kattintson az Execute gombra.
Az ártáblának most a következőnek kell lennie:
DELETE nyilatkozattal
Ha ugyanezt szeretné elérni a pgAdmin segítségével, tegye ezt:
1. lépés: Jelentkezzen be pgAdmin-fiókjába.
2. lépés)
- A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
- Kattintson a Demo elemre.
3. lépés: Írja be a lekérdezést a lekérdező szerkesztőbe:
DELETE FROM PriceWHERE EXISTS (SELECT *FROM Price2WHERE Price.id = Price2.id);
4. lépés) Kattintson az Execute gombra.
Az ártáblának most a következőnek kell lennie:
Összegzés
- Az EXISTS operátor teszteli, hogy léteznek-e sorok egy allekérdezésben.
- Allekérdezéssel használják, és azt mondják, hogy teljesült, amikor az allekérdezés legalább egy sort visszaad.
- SELECT, UPDATE, INSERT és DELETE utasításokkal együtt használják.
Töltse le az oktatóanyagban használt adatbázist