Kas ir PostgreSQL Union?
Operators PostgreSQL UNION tiek izmantots, lai vienā rezultātu kopā apvienotu rezultātu kopas no vairāk nekā viena SELECT priekšraksta. Visas dublikātu rindas no SELECT priekšrakstu rezultātiem tiek izslēgtas. UNION operators strādā ar diviem nosacījumiem:
- SELECT vaicājumiem IR JĀGRIEŽ līdzīgs vaicājumu skaits.
- Visu atbilstošo kolonnu datu tipiem jābūt saderīgiem.
Operators UNION parasti tiek izmantots, lai apvienotu datus no saistītajām tabulām, kas nav pilnībā normalizētas.
Šajā PostgreSQL apmācībā jūs uzzināsiet:
- Kas ir PostgreSQL Union?
- Sintakse
- Savienība
- Savienība Visi
- SAKĀRTOT PĒC
- Kad lietot Union un kad lietot Union all?
- Izmantojot pgAdmin
Sintakse
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Šeit ir iepriekš minēto parametru skaidrojums:
Izteiksme_1, izteiksme_2, ... izteiksme_n ir aprēķini vai kolonnas, kas jums jāizgūst.
Tabulas ir tabulas, no kurām jums jāizgūst ieraksti.
WHERE nosacījums (-i) ir nosacījumi, kas jāievēro, lai izgūtu ierakstus.
Piezīme: tā kā UNION operators neatdod dublikātus, UNION DISTINCT izmantošana neietekmēs rezultātus.
Savienība
UNION operators noņem dublikātus. Ļaujiet mums to demonstrēt.
Mums ir datu bāze ar nosaukumu Demo ar šādām tabulām:
Grāmata:
Cena:
Palaidīsim šādu komandu:
SELECT idFROM BookUNIONSELECT idFROM Price;
Komanda atgriezīs:
Kolonna ID tiek parādīta gan tabulās Grāmata, gan Cena. Tomēr rezultātā tas parādās tikai vienu reizi. Iemesls ir tāds, ka PostgreSQL UNION operators neatdod dublikātus.
Savienība Visi
Šis operators apvieno rezultātu kopas no vairāk nekā viena SELECT priekšraksta, nenoņemot dublikātus. Operators pieprasa, lai katram SELECT priekšrakstam būtu līdzīgs lauku skaits līdzīgu datu tipu rezultātu kopās.
Sintakse:
SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)];
Šeit ir iepriekš minēto parametru skaidrojums:
Izteiksme_1, izteiksme_2, ... izteiksme_n ir aprēķini vai kolonnas, kas jums jāizgūst.
Tabulas ir tabulas, no kurām jums jāizgūst ieraksti.
WHERE nosacījums (-i) ir nosacījumi, kas jāievēro, lai izgūtu ierakstus.
Piezīme: Abiem izteicieniem jābūt vienādam izteicienu skaitam.
Mēs izmantosim šādas tabulas:
Grāmata:
Cena:
Palaidiet šādu komandu:
SELECT idFROM BookUNION ALLSELECT idFROM price;
Tam jāatgriež:
Dublikāti nav noņemti.
SAKĀRTOT PĒC
Operatoru PostgreSQL UNION var izmantot kopā ar klauzulu ORDER BY, lai pasūtītu vaicājuma rezultātus. Lai to parādītu, mēs izmantosim šādas tabulas:
Cena:
2. cena:
Šī ir komanda, kas parāda, kā lietot UNION operatoru kopā ar klauzulu ORDER BY:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;
Komanda atgriezīs:
Ierakstus pasūtīja cenu sleja. Klauzula ieraksti pēc noklusējuma tiek sakārtoti augošā secībā. Lai tos pasūtītu dilstošā secībā, pievienojiet klauzulu DESC, kā parādīts zemāk:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
Komanda atgriezīs:
Ieraksti ir pasūtīti, pamatojoties uz cenu kolonnu dilstošā secībā.
Kad lietot Union un kad lietot Union all?
Izmantojiet operatoru UNION, ja jums ir vairākas tabulas ar līdzīgu struktūru, bet sadalītas iemesla dēļ. Tas ir labi, ja jums ir nepieciešams noņemt / novērst ierakstu dublikātus.
Izmantojiet operatoru UNION ALL, ja jums nav nepieciešams noņemt / likvidēt ierakstu dublikātus.
Izmantojot pgAdmin
Tagad redzēsim, kā visas trīs darbības tika veiktas, izmantojot pgAdmin.
Savienība
Lai to paveiktu, izmantojot pgAdmin, rīkojieties šādi:
1. darbība. Piesakieties savā pgAdmin kontā.
2. solis)
- Kreisajā pusē esošajā navigācijas joslā noklikšķiniet uz Databases.
- Noklikšķiniet uz Demo.
3. darbība. Vaicājuma redaktorā ierakstiet vaicājumu:
SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
Savienība Visi
1. darbība. Piesakieties savā pgAdmin kontā.
2. solis)
- Kreisajā pusē esošajā navigācijas joslā noklikšķiniet uz Databases.
- Noklikšķiniet uz Demo.
3. darbība. Vaicājuma redaktorā ierakstiet vaicājumu:
SELECT idFROM BookUNION ALLSELECT idFROM price;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
SAKĀRTOT PĒC
Operatoru UNION ALL var apvienot ar klauzulu ORDER BY, lai rezultātu secībā pasūtītu rezultātus. Piemēram:
SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;
Komanda atgriezīs:
Rezultāti ir pasūtīti.
Kopsavilkums:
- Operators PostgreSQL UNION vienā rezultātu kopā apvieno vairāku SELECT paziņojumu rezultātus.
- Operators UNION neatdod ierakstu dublikātus.
- Lai pasūtītu rezultātus, apvienojiet to ar klauzulu ORDER BY.
- Operators UNION ALL apvieno vairāku SELECT paziņojumu rezultātus vienā rezultātu kopā.
- Operators UNION ALL nenoņem dublikātus.
Lejupielādējiet šajā apmācībā izmantoto datu bāzi