PostgreSQL Unió, Unió MINDEN példákkal
Mi a PostgreSQL Unió?
A PostgreSQL Az UNION operátor egynél több SELECT utasítás eredményhalmazainak egy eredményhalmazba való kombinálására szolgál. A SELECT utasítások eredményeiből a duplikált sorok megszűnnek. Az UNION operátora két feltétel mellett működik:
- A SELECT lekérdezéseknek hasonló számú lekérdezést KELL visszaadniuk.
- Az összes megfelelő oszlop adattípusának kompatibilisnek kell lennie.
Az UNION operátort általában a nem tökéletesen normalizált kapcsolódó táblákból származó adatok kombinálására használják.
Szintaxis
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Íme a fenti paraméterek magyarázata:
A kifejezés_1, kifejezés_2, … kifejezés_n azok a számítások vagy oszlopok, amelyeket le kell kérnie.
A táblák azok a táblák, amelyekből rekordokat kell lekérni.
A WHERE feltétel(ek) azok a feltételek, amelyeknek teljesülniük kell a rekordok lekéréséhez.
Megjegyzés: mivel az UNION operátor nem ad vissza duplikációkat, az UNION DISTINCT használata nincs hatással az eredményekre.
PostgreSQL Unió
Az UNION operátor eltávolítja a duplikációkat. Mutassuk meg ezt.
Van egy Demo nevű adatbázisunk a következő táblázatokkal:
Könyv:
Ár:
Futtassuk a következő parancsot:
SELECT id FROM Book UNION SELECT id FROM Price;
A parancs a következőt adja vissza:
Az azonosító oszlop a Könyv és az Ár táblázatban is megjelenik. Ez azonban csak egyszer jelenik meg az eredményben. Az ok az PostgreSQL Az UNION operátor nem ad vissza másolatokat.
PostgreSQL Union All
Ez az operátor több SELECT utasítás eredményhalmazait kombinálja anélkül, hogy eltávolítaná az ismétlődéseket. Az operátor megköveteli, hogy minden SELECT utasításnak hasonló számú mezője legyen a hasonló adattípusú eredményhalmazokban.
Syntax:
SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)] UNION ALL SELECT expression_1, expression_2, ... expression_n FROM tables [WHERE condition(s)];
Íme a fenti paraméterek magyarázata:
A kifejezés_1, kifejezés_2, … kifejezés_n azok a számítások vagy oszlopok, amelyeket le kell kérnie.
A táblák azok a táblák, amelyekből rekordokat kell lekérni.
A WHERE feltétel(ek) azok a feltételek, amelyeknek teljesülniük kell a rekordok lekéréséhez.
Megjegyzés: Mindkét kifejezésnek azonos számú kifejezést kell tartalmaznia.
A következő táblázatokat fogjuk használni:
Könyv:
Ár:
Futtassa a következő parancsot:
SELECT id FROM Book UNION ALL SELECT id FROM price;
A következőt kell visszaadnia:
A másolatokat nem távolították el.
RENDEZÉS
A PostgreSQL A UNION operátor az ORDER BY záradékkal együtt használható a lekérdezés eredményeinek rendezésére. Ennek bemutatására a következő táblázatokat használjuk:
Ár:
Ár2:
Itt található a parancs, amely bemutatja, hogyan kell használni az UNION operátort az ORDER BY záradékkal együtt:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price;
A parancs a következőt adja vissza:
A rekordokat az ár oszlop szerint rendeztük. A záradék alapértelmezés szerint növekvő sorrendben rendezi a rekordokat. Ha csökkenő sorrendbe szeretné rendezni őket, adja hozzá a DESC záradékot az alábbiak szerint:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
A parancs a következőt adja vissza:
A rekordok sorrendje az ár oszlop alapján, csökkenő sorrendben történt.
Mikor használjuk az Uniót és mikor az Union all-t?
Használja az UNION operátort, ha több hasonló szerkezetű, de okkal felosztott táblája van. Ez akkor jó, ha el kell távolítania/ki kell törölnie az ismétlődő rekordokat.
Használja az UNION ALL operátort, ha nem kell eltávolítania/megszüntetnie az ismétlődő rekordokat.
pgAdmin használatával
Most nézzük meg, hogyan történt mindhárom művelet a pgAdmin használatával.
Hogyan használjuk PostgreSQL Unió a pgAdmin használatával
Az alábbiakban lépésről lépésre bemutatjuk, hogyan kell használni PostgreSQL Unió a pgAdmin használatával
Ha ugyanezt a pgAdminon keresztül szeretné elérni, tegye a következőket:
Step 1) Belépés
Jelentkezzen be pgAdmin fiókjába.
Step 2) Kattintson az Adatbázisok elemre
- A bal oldali navigációs sávban kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
Step 3) Írja be a lekérdezést
Írja be a lekérdezést a lekérdezésszerkesztőbe:
SELECT * FROM Price UNION SELECT * FROM Price2 ORDER BY price DESC;
Step 4) Kattintson a Végrehajtás gombra.
Ezután kattintson a Végrehajtás gombra. Ahogy az alábbi képen látható.
A következőt kell visszaadnia:
Union All
Step 1) Jelentkezzen be pgAdmin fiókjába.
Step 2)
- A bal oldali navigációs sávon kattintson az Adatbázisok elemre.
- Kattintson a Demo gombra.
Step 3) Írja be a lekérdezést a lekérdezésszerkesztőbe:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Step 4) Kattintson a Végrehajtás gombra.
A következőt kell visszaadnia:
RENDEZÉS
Az UNION ALL operátor kombinálható az ORDER BY záradékkal, hogy az eredményeket az eredményhalmazban rendezze. Például:
SELECT id FROM Book UNION ALL SELECT id FROM price ORDER BY id;
A parancs a következőt adja vissza:
Az eredményeket megrendelték.
Összegzésként
- A PostgreSQL Az UNION operátor egynél több eredményét egyesíti SELECT utasítás egy eredményhalmazba.
- Az UNION operátor nem ad vissza ismétlődő rekordokat.
- Az eredmények rendezéséhez kapcsolja össze az ORDER BY záradékkal.
- Az UNION ALL operátor egynél több SELECT utasítás eredményeit egyesíti egy eredményhalmazba.
- Az UNION ALL operátor nem távolítja el a duplikációkat.
Töltse le az oktatóanyagban használt adatbázist