PostgreSQL Unija, Unija SVE s primjerima

โšก Pametni saลพetak

PostgreSQL UNION kombinira rezultate dvije ili viลกe SELECT naredbi u jedan skup rezultata i uklanja duplikate, dok UNION ALL zadrลพava svaki redak, ลกto daje brลพu opciju kada duplikati nisu vaลพni.

  • ๐Ÿ”— Kombinirati: UNION spaja retke iz viลกe SELECT naredbi u jedan skup rezultata.
  • ๐Ÿงน Duplikati: UNION uklanja duplicirane retke, dok UNION ALL zadrลพava sve odgovarajuฤ‡e retke.
  • ๐Ÿ“ Pravila: Svaki SELECT mora vratiti isti broj stupaca s kompatibilnim tipovima podataka.
  • โ†•๏ธ REDAJ PO: Jedan ORDER BY na kraju sortira kombinirani skup rezultata.
  • โšก Performance: UNION ALL radi brลพe jer preskaฤe korak uklanjanja duplikata.
  • ๐Ÿค– Pomoฤ‡ za umjetnu inteligenciju: AI asistenti poravnavaju stupce i biraju izmeฤ‘u UNION i UNION ALL.

PostgreSQL UNIJA i UNIJA SVE

ล to je PostgreSQL Unija?

The PostgreSQL Operator UNION koristi se za kombiniranje skupova rezultata iz viลกe od jedne naredbe SELECT u jedan skup rezultata. Svi duplicirani retci iz rezultata SELECT izjava su eliminirani. Operator UNION radi pod dva uvjeta:

  • SELECT upiti moraju vratiti isti broj stupaca.
  • Tipovi podataka svih odgovarajuฤ‡ih stupaca moraju biti kompatibilni.

Operator UNION obiฤno se koristi za kombiniranje podataka iz povezanih tablica koje nisu savrลกeno normalizirane.

Sintaksa

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)];

Evo objaลกnjenja za gore navedene parametre:

Izraz_1, izraz_2, โ€ฆ izraz_n su izraฤuni ili stupci koje trebate dohvatiti.

Tablice su tablice iz kojih trebate dohvatiti zapise.

WHERE uvjet(i) su uvjeti koji moraju biti ispunjeni da bi se zapisi mogli dohvatiti.

Biljeลกka: Buduฤ‡i da operator UNION ne vraฤ‡a duplikate, koriลกtenje operatora UNION DISTINCT neฤ‡e imati utjecaja na rezultate.

PostgreSQL Unija

Operator UNION uklanja duplikate na isti naฤin kao ODABIR DISTINCT radi. Demonstrirajmo to. Imamo bazu podataka pod nazivom Demo sa sljedeฤ‡im tablicama:

Rezervirati:

PostgreSQL Unija

Cijena:

PostgreSQL Unija

Pokrenimo sljedeฤ‡u naredbu:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Naredba ฤ‡e vratiti sljedeฤ‡e:

PostgreSQL Unija

Stupac ID pojavljuje se u tablicama Knjiga i Cijena. Meฤ‘utim, pojavljuje se samo jednom u rezultatu. Razlog je taj PostgreSQL Operator UNION ne vraฤ‡a duplikate.

PostgreSQL Unija sv

Ovaj operator kombinira skupove rezultata iz viลกe od jedne naredbe SELECT bez uklanjanja duplikata. Operator zahtijeva da svaka izjava SELECT ima sliฤan broj polja u skupovima rezultata sliฤnih tipova podataka.

Sintaksa:

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)];

Evo objaลกnjenja za gore navedene parametre:

Izraz_1, izraz_2, โ€ฆ izraz_n su izraฤuni ili stupci koje trebate dohvatiti.

Tablice su tablice iz kojih trebate dohvatiti zapise.

WHERE uvjet(i) su uvjeti koji moraju biti ispunjeni da bi se zapisi mogli dohvatiti.

Biljeลกka: Obje SELECT naredbe moraju imati jednak broj izraza.

Koristit ฤ‡emo sljedeฤ‡e tablice:

Rezervirati:

PostgreSQL Unija sv

Cijena:

PostgreSQL Unija sv

Pokrenite sljedeฤ‡u naredbu:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Trebao bi vratiti sljedeฤ‡e:

PostgreSQL Unija sv

Duplikati nisu uklonjeni.

NARUฤŒITE PO

The PostgreSQL Operator UNION moลพe se koristiti zajedno s klauzulom ORDER BY za poredak rezultata upita. Da bismo to demonstrirali, koristit ฤ‡emo se sljedeฤ‡im tablicama:

Cijena:

NARUฤŒITE PO

Cijena2:

NARUฤŒITE PO

Evo naredbe koja pokazuje kako koristiti operator UNION zajedno s klauzulom ORDER BY:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

Naredba ฤ‡e vratiti sljedeฤ‡e:

NARUฤŒITE PO

Zapisi su poredani prema stupcu cijena. Klauzula prema zadanim postavkama rasporeฤ‘uje zapise uzlaznim redoslijedom. Da biste ih poredali silaznim redoslijedom, dodajte klauzulu DESC kao ลกto je prikazano u nastavku:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Naredba ฤ‡e vratiti sljedeฤ‡e:

NARUฤŒITE PO

Zapisi su poredani na temelju stupca cijena silaznim redoslijedom.

Kada koristiti Union, a kada Union All?

Koristite operator UNION kada imate viลกe tablica sa sliฤnom strukturom, ali podijeljenih s razlogom. Dobar je kada trebate ukloniti ili eliminirati duplicirane zapise.

Koristite operator UNION ALL kada ne trebate ukloniti ili eliminirati duplicirane zapise.

Koristeฤ‡i pgAdmin

Sada pogledajmo kako se sve tri radnje izvode pomoฤ‡u pgAdmin-a.

Kako koristiti PostgreSQL Unija pomoฤ‡u pgAdmin-a

Slijedi korak-po-korak postupak o tome kako ga koristiti PostgreSQL UNION putem pgAdmin-a:

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2) Na navigacijskoj traci s lijeve strane kliknite Baze podataka, a zatim kliknite Demo.

Koristiti PostgreSQL Unija pomoฤ‡u pgAdmin-a

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Korak 4) Pritisnite gumb Izvrลกi.

Koristiti PostgreSQL Unija pomoฤ‡u pgAdmin-a

Trebao bi vratiti sljedeฤ‡e:

Koristiti PostgreSQL Unija pomoฤ‡u pgAdmin-a

Unija sv

Korak 1) Prijavite se na svoj pgAdmin raฤun.

Korak 2) Na navigacijskoj traci s lijeve strane kliknite Baze podataka, a zatim kliknite Demo.

Koristiti PostgreSQL Ujedini sve koristeฤ‡i pgAdmin

Korak 3) Unesite upit u ureฤ‘ivaฤ upita:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Korak 4) Pritisnite gumb Izvrลกi.

Koristiti PostgreSQL Ujedini sve koristeฤ‡i pgAdmin

Trebao bi vratiti sljedeฤ‡e:

Koristiti PostgreSQL Ujedini sve koristeฤ‡i pgAdmin

NARUฤŒITE PO

Operator UNION ALL moลพe se kombinirati s klauzulom ORDER BY za poredak rezultata u skupu rezultata. Na primjer:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

Naredba ฤ‡e vratiti sljedeฤ‡e:

Koristiti PostgreSQL NARUDลฝAJ Upotrebom pgAdmin-a

Rezultati su naruฤeni.

Preuzmite bazu podataka koriลกtenu u ovom vodiฤu

Pitanja i odgovori

UNION ALL je brลพi jer jednostavno spaja retke. UNION mora sortirati ili hashirati kombinirane retke kako bi uklonio duplikate, ลกto dodaje optereฤ‡enje. Kada duplikati nisu vaลพni, UNION ALL je uฤinkovitiji izbor.

Da. Svaki SELECT u UNION-u mora vratiti isti broj stupaca, a odgovarajuฤ‡i stupci moraju imati kompatibilne tipove podataka u istom redoslijedu. Inaฤe PostgreSQL javlja greลกku i upit ne uspijeva.

Da. Nazivi stupaca mogu se razlikovati jer UNION spaja stupce po poloลพaju, a ne po nazivu. Tipovi podataka i dalje moraju biti kompatibilni, a skup rezultata koristi nazive stupaca iz prve SELECT naredbe.

UNION slaลพe retke dvaju skupova rezultata okomito u jedan popis stupaca, uklanjajuฤ‡i duplikate. JOIN kombinira stupce iz razliฤitih tablica vodoravno na temelju povezanog kljuฤa, pa proลกiruje retke umjesto da ih dodaje.

ORDER BY sortira konaฤni kombinirani rezultat, dakle PostgreSQL dopuลกta samo jedan ORDER BY postavljen nakon zadnjeg SELECT-a. Sortiranje pojedinaฤnih upita prvo ne bi imalo smisla nakon ลกto se njihovi retci spoje.

AI asistenti poput GitHub Copilota poravnavaju popise stupaca svakog SELECT-a, oznaฤavaju neusklaฤ‘ene tipove podataka i preporuฤuju UNION ili UNION ALL na temelju toga treba li zadrลพati duplikate, smanjujuฤ‡i uobiฤajene pogreลกke u upitima.

Da. Pregledom vaลกih tablica i cilja, AI asistent moลพe utvrditi jesu li duplicirani retci moguฤ‡i i smisleni, a zatim predloลพiti UNION ALL kada su duplikati prihvatljivi radi ubrzanja ili UNION kada ih je potrebno ukloniti.

UNION vraฤ‡a retke pronaฤ‘ene u bilo kojem upitu. INTERSECT vraฤ‡a samo retke prisutne u oba upita, a EXCEPT vraฤ‡a retke u prvom upitu, ali ne i u drugom. Sva tri prema zadanim postavkama uklanjaju duplikate.

Saลพmite ovu objavu uz: