Kas ir PostgreSQL pievienošanās?
PostgreSQL JOIN tiek izmantoti, lai izgūtu datus no vairākām tabulām. Izmantojot JOINs, mums ir iespējams apvienot SELECT un JOIN paziņojumus vienā paziņojumā. Izrakstam tiek pievienots nosacījums PIEVIENOTIES un visas rindas, kas atbilst nosacījumiem, tiek atgrieztas.
Dažādu tabulu vērtības tiek apvienotas, pamatojoties uz kopīgām kolonnām. Kopējā kolonna galvenokārt ir primārā atslēga pirmajā tabulā un ārējā atslēga otrajā tabulā.
Šajā PostgreSQL apmācībā jūs uzzināsiet:
- Kas ir PostgreSQL pievienošanās?
- Savienojumu veidi
- Iekšējie savienojumi
- Theta Pievienojies
- EQUI pievienojieties
- Natural Join
- Ārējais savienojums
- PA KREISO ĀRĒJO PIEVIENOŠANOS
- TIEŠI ĀRĒJAIS PIEVIENOŠANĀS
- Pilnīga ārējā pievienošanās
- Izmantojot pgAdmin
- Iekšējie savienojumi
- Theta Pievienojies
- EQUI pievienojieties
- Natural Join
- INNER JOIN (vienkārša pievienošanās)
- Ārējais savienojums
- PA KREISO ĀRĒJO PIEVIENOŠANOS
- TIEŠI ĀRĒJAIS PIEVIENOŠANĀS
- Pilnīga ārējā pievienošanās
Savienojumu veidi
PostgreSQL ir divi JOIN veidi:
- Iekšējie savienojumi
- Ārējā pievienošanās
Iekšējie savienojumi
Ir 3 iekšējo savienojumu veidi:
- Teta pievienojas
- Dabiski pievienoties
- EQUI pievienoties
Theta Pievienojies
Teta savienojums ļauj savienot divas tabulas, pamatojoties uz nosacījumu, kuru attēlo teta. Theta pievienošanās var strādāt ar visiem salīdzināšanas operatoriem. Vairumā gadījumu teta savienojums tiek saukts par iekšējo savienojumu.
Teta pievienošanās ir visvienkāršākais PIEVIENOŠANĀS veids. Tas atgriezīs visas tabulu rindas, kurās ir pievienots JOIN nosacījums.
Sintakse:
SELECT columnsFROM table-1INNER JOIN table-2ON table-1.column = table-2.column;
Apsveriet šādas demonstrācijas datu bāzes tabulas:
Grāmata:
Cena:
Mēs vēlamies redzēt katras grāmatas nosaukumu un atbilstošo cenu. Mēs varam izpildīt šādu komandu:
SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
Tas atgriezīs:
Tikai 3 rindas apmierināja pievienošanās nosacījumu.
EQUI pievienojieties
EQUI pievienošanās mums nodrošina iespēju apvienot divas tabulas, pamatojoties uz primārās atslēgas / ārējās atslēgas attiecībām. Piemēram:
SELECT *FROM BookJOIN Price ON Book.id = Price.id;
Tas atgriezīs:
Ieraksti ir atgriezti no abām tabulām, pamatojoties uz kopējām kolonnām, tas ir, kolonnu ID.
Natural Join
Šāda veida pievienošanās mums nodrošina vēl vienu veidu, kā uzrakstīt EQUI savienojumu. Mēs varam uzlabot savu iepriekšējo piemēru, pievienojot NATURAL atslēgvārdu, kā parādīts zemāk:
SELECT *FROM BookNATURAL JOIN Price;
Tas atgriezīs:
Ir atgriezta tikai viena ID kolonna. NATURAL JOIN varēja atzīmēt, ka ID kolonna ir izplatīta abās tabulās. Tikai viens tika atgriezts.
Ārējais savienojums
PostgreSQL ir trīs ārējo JOIN veidu veidi:
- Kreisais ārējais savienojums.
- Labais ārējais savienojums.
- Pilnīga ārējā pievienošanās
PA KREISO ĀRĒJO PIEVIENOŠANOS
LEFT OUTER JOIN atgriezīs visas tabulas rindas kreisajā pusē un tikai tās labās puses tabulas rindas, kurās ir izpildīts pievienošanās nosacījums.
Sintakse:
SELECT columnsFROM table-1LEFT OUTER JOIN table-2ON table-1.column = table-2.column;
Mums ir jāredz katras grāmatas nosaukums un atbilstošā cena. Mēs varam izpildīt šādu komandu:
SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
Tādējādi tiek parādīts:
Visas grāmatas tabulas 4 rindas ir atgrieztas. Tikai 3 tabulas Cena tabulas rindas atbilda pievienošanās nosacījumam. Tāpēc viņi tika atgriezti. Pēdējai grāmatai nav atbilstošas cenas vērtības.
TIEŠI ĀRĒJAIS PIEVIENOŠANĀS
RIGHT OUTER JOIN atgriež visas tabulas rindas labajā pusē un tabulas rindas kreisajā pusē, kur pievienošanās nosacījums ir izpildīts.
Sintakse:
SELECT columnsFROM table-1RIGHT OUTER JOIN table-2ON table-1.column = table-2.column;
Piemēram:
SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
Tādējādi tiek parādīts:
Visas tabulas Cena rindas ir atgrieztas. Tika atgrieztas tikai tās grāmatas tabulas rindas, kas atbilda pievienošanās nosacījumam. 3 rd rinda nav vērtība vārdu, jo neviens mačs tika atrasts.
Pilnīga ārējā pievienošanās
Šis JOIN veids atgriezīs visas tabulas rindas kreisajā pusē un visas tabulas rindas labajā pusē ar nulles vērtībām, ja pievienošanās nosacījums nav izpildīts.
Sintakse:
SELECT columnsFROM table-1FULL OUTER JOIN table-2ON table-1.column = table-2.column;
Piemēram:
SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
Tādējādi tiek parādīts:
Visas rindas no visām tabulām ir atgrieztas ar nullēm, kurās nav atrasta neviena atbilstība.
Izmantojot pgAdmin
Iepriekš minētos uzdevumus pgAdmin var veikt šādi:
Iekšējie savienojumi
Theta Pievienojies
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 Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
EQUI pievienojieties
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 BookJOIN Price ON Book.id = Price.id;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
Natural Join
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 BookNATURAL JOIN Price;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
INNER JOIN (vienkārša pievienošanās)
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 Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
Ārējais savienojums
PA KREISO ĀRĒJO PIEVIENOŠANOS
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 Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
TIEŠI ĀRĒJAIS PIEVIENOŠANĀS
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 Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
Pilnīga ārējā pievienošanās
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 Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;
4. solis) Noklikšķiniet uz pogas Izpildīt.
Tam jāatgriež:
Kopsavilkums:
- Programmā PostgreSQL mēs izmantojam JOIN, kad mums ir jāizgūst vērtības no vairākām tabulām.
- INNER JOIN ir visvienkāršākais PIEVIENOŠANĀS veids. Tas atgriež visus ierakstus, kuros norādītais JOIN nosacījums ir izpildīts.
- LEFT OUTER JOIN atgriež visas rindas kreisās puses tabulā un tikai tās citas tabulas rindas, kurās ir izpildīti pievienošanās nosacījumi.
- RIGHT OUTER JOIN atgriež visas labās puses tabulas rindas un tikai citas tabulas rindas, kurās ir izpildīts pievienošanās nosacījums.
- Šis JOIN tips atgriež visas rindas kreisās puses tabulā un visas labās puses tabulas rindas ar nulles vērtībām, ja pievienošanās nosacījums nav izpildīts.
Lejupielādējiet šajā apmācībā izmantoto datu bāzi