Mi a PostgreSQL Union?
A PostgreSQL UNION operátor egynél több SELECT utasítás eredményhalmazának egy eredménykészletbe történő egyesítésére szolgál. A SELECT utasítások eredményeinek minden duplikált sora megszűnik. Az UNION üzemeltetője két feltétel mellett dolgozik:
- A SELECT lekérdezéseknek hasonló számú lekérdezést KELL adniuk.
- Az összes megfelelő oszlop adattípusainak kompatibiliseknek kell lenniük.
Az UNION operátort általában a nem teljesen normalizált, kapcsolódó táblázatokból származó adatok egyesítésére használják.
Ebben a PostgreSQL oktatóanyagban megtudhatja:
- Mi a PostgreSQL Union?
- Szintaxis
- Unió
- Union All
- RENDEZÉS
- Mikor kell használni az Uniót és mikor az Uniót?
- A pgAdmin használatával
Szintaxis
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Itt van egy magyarázat a fenti paraméterekre:
A kifejezés_1, kifejezés_2,… kifejezés_n azok a számítások vagy oszlopok, amelyeket be kell szereznie.
A táblák azok a táblák, amelyekből be kell töltenie a rekordokat.
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átumokat, az UNION DISTINCT használata nem befolyásolja az eredményeket.
Unió
Az UNION operátor eltávolítja a duplikátumokat. Bemutassuk ezt.
Van egy Demo nevű adatbázisunk a következő táblázatokkal:
Könyv:
Ár:
Futtassuk a következő parancsot:
SELECT idFROM BookUNIONSELECT idFROM Price;
A parancs a következőket adja vissza:
Az id oszlop mind a Könyv, mind az Ár táblákban megjelenik. Az eredményben azonban csak egyszer jelenik meg. Ennek oka, hogy a PostgreSQL UNION operátor nem ad vissza duplikátumokat.
Union All
Ez az operátor több mint egy SELECT utasítás eredménykészletét ötvözi a duplikátumok eltávolítása nélkül. Az operátor megköveteli, hogy minden SELECT utasításnak hasonló számú mezővel rendelkezzen hasonló adattípusú eredményhalmazokban.
Szintaxis:
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Itt van egy magyarázat a fenti paraméterekre:
A kifejezés_1, kifejezés_2,… kifejezés_n azok a számítások vagy oszlopok, amelyeket be kell szereznie.
A táblák azok a táblák, amelyekből be kell töltenie a rekordokat.
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 idFROM BookUNION ALLSELECT idFROM price;
Ennek vissza kell adnia a következőket:
A másolatokat nem távolították el.
RENDEZÉS
A PostgreSQL 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ához a következő táblázatokat fogjuk használni:
Ár:
2. ár:
Ez a parancs bemutatja az UNION operátor használatát az ORDER BY záradékkal együtt:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;
A parancs a következőket adja vissza:
A nyilvántartásokat az ár oszlop rendezte. A záradék alapértelmezés szerint növekvő sorrendbe rendezi a rekordokat. Csökkenő sorrendben adja hozzá a DESC záradékot az alábbiak szerint:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
A parancs a következőket adja vissza:
A rekordokat az ár oszlop alapján rendeztük csökkenő sorrendben.
Mikor kell használni az Uniót és mikor az Uniót?
Használja az UNION operátort, ha több, hasonló felépítésű, de okból felosztott tábla van. Akkor jó, ha el kell távolítania / eltávolítania az ismétlődő rekordokat.
Használja az UNION ALL operátort, ha nem kell eltávolítania / törölnie az ismétlődő rekordokat.
A pgAdmin használatával
Most nézzük meg, hogyan teljesített mindhárom művelet a pgAdmin használatával.
Unió
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 PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
4. lépés) Kattintson az Execute gombra.
Ennek vissza kell adnia a következőket:
Union All
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 idFROM BookUNION ALLSELECT idFROM price;
4. lépés) Kattintson az Execute gombra.
Ennek vissza kell adnia a következőket:
RENDEZÉS
Az UNION ALL operátor kombinálható az ORDER BY záradékkal, hogy eredményeket rendeljen az eredményhalmazba. Például:
SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;
A parancs a következőket adja vissza:
Az eredményeket megrendeltük.
Összegzés:
- A PostgreSQL UNION operátor egynél több SELECT utasítás eredményeit egyesíti egy eredményhalmazba.
- Az UNION operátor nem ad vissza duplikált rekordokat.
- Az eredmények rendezéséhez kombinálja 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 másolatokat.
Töltse le az oktatóanyagban használt adatbázist