Introduktion til typer af sammenføjninger i SQL

En tilslutningsklausul i SQL tjener formålet med at kombinere rækker fra to eller flere tabeller. Processen med at kombinere rækker afhænger af en kolonne, der er relateret til dem. De fire forskellige sammenføjningstyper i SQL er navngivet som en indre sammenføjning, venstre sammenføjning, højre samling og fuld sammenføjning. Inden vi virkelig kan begynde at bruge nogen form for sammenføjning, har vi brug for et RDBMS eller et relationsdatabasestyringssystem, hvor vi indlæser dataene. En af de meget lette måder at forstå sammenføjningerne er ved hjælp af Venn-diagrammet. Ved hjælp af et Venn-diagram gør det nemt at måle alle mulige og logiske forhold mellem forskellige datasæt. Lad os forstå dette en efter en ved hjælp af Venn Diagram. Senere vil vi forstå forskellen mellem disse ved hjælp af nogle praktiske eksempler. Lad os antage, at der er to datasæt i vores database, der er gemt i form af tabel et og tabel to. Der er en vis forbindelse mellem de to tabeller, der er specificeret i form af en primær nøgle og et fremmed nøglekoncept. Hvis du slutter dig til to tabeller, der har en slags relation, vil Venn-diagram-repræsentationen af ​​scenariet være noget i retning af,

Mængden af ​​denne overlapning vil bestemme omfanget af ligheden mellem de to tabeller, dvs. Tabel A og Tabel B. Dette betyder, at antallet af poster fra tabel en, der matcher posterne fra tabel to, er repræsenteret af overlapningsafsnittet. Dette er en undergruppe af data. Vi får fire forskellige typer sammenføjninger baseret på det undersæt af data, vi vælger fra de to tabeller.

Syntax for Join:

SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 WHERE condition

Typer af sammenføjninger i SQL

  1. Indre del
  2. Venstre Deltag
  3. Højre deltag
  4. Fuld deltagelse

Nedenfor forklarer vi forskellige typer sammenføjninger i detaljeret.

1. Indre sammenføjning

I en indre sammenføjning vælger vi kun de data, der er almindelige i begge tabeller. (dvs. del 3 her) For at gøre det mere præcist vælges alle poster fra begge tabeller, der matcher den tilstand, der er nævnt med sammenføjningen, i denne sammenføjning.

Syntaks for indre sammenføjning:

SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 WHERE condition

2. Venstre deltag

Ved venstre sammenkobling vælger vi alle data fra venstre tabel og fra højre tabel vælger vi kun datasættet, der stemmer overens med den tilstand, der er nævnt med sammenføjningen (her område 1 + 3)

Syntaks for Venstre Deltag:

SELECT column-names FROM table-name1 LEFT JOIN table-name2 ON column-name1 = column-name2 WHERE condition

3. Right Join

Ved højre samling vælger vi alle data fra den højre tabel og fra venstre tabel vælger vi kun datasættet, der stemmer overens med den tilstand, der er nævnt med sammenkædningen (her 3 + 2)

Syntaks af Right Join:

SELECT column-names FROM table-name1 RIGHT JOIN table-name2 ON column-name1 = column-name2 WHERE condition

4. Fuld deltagelse

I fuld sammenføjning, alle poster fra begge tabellerne flettes og vælges uanset den betingelse, der er nævnt med sammenkædningen, der er opfyldt eller ej. (her 1 + 2 + 3)

Syntaks for Full Join:

SELECT column-names FROM table-name1 FULL JOIN table-name2 ON column-name1 = column-name2 WHERE condition

Eksempler på sammenføjninger i SQL

Overvej følgende tabel nedenfor:

1. Eksempel på en ORDER_DETAILS

Tabelordren indeholder detaljen i den ordre, som kunden har placeret, såsom ordre-id, antallet af bestilte produkter, mængden af ​​ordren, id for den kunde, der bestilte ordren, og den dato, hvor ordren blev placeret. En sådan type bord kan bruges af ethvert online websted til lagring af ordrens detaljer.

ORDER_DETAILS Tabel:

Ordre ID No_of_Items ORDER_AMOUNT Kunde ID Bestillingsdato
123 3 5500 P_1 2019/01/20
234 2 6500 P_12 2019/02/10
345 1 10000 P_13 2019/05/27
456 4 4000 P_14 2019/11/07
567 2 20.656 P_1 2019/12/15
678 3 15000 P_11 2019/10/27

2. Eksempel på CUSTOMER_DETAILS

Lad os nu tage en anden tabel, hvor kundens detaljer gemmes, så de kan levere ordren til deres respektive adresser. Kundetabellen vil derfor have kundens detaljer, f.eks. Kunde-id (cust_id), som vil være unik for hver kunde. Nu gemmes fornavnet og efternavnet i det felt, der kaldes - Cust_First_Name og Cust_Last_Name. De andre felter gemmer oplysningerne, såsom e-mail-id, kundens mobilnummer sammen med adressen, Pincode, by og stat. Vi kan således se, at vores kundetabel ser ud som -

CUSTOMER_DETAILS Tabel:

kunde_id Cust_First_Name Cust_Last_Name Pinkode Adresse Cust_Mobile by Stat kunde_email
P_50 Alice Peter 111111 330 xyz gade 123 Bangalore KA
P_12 James Dsouza 155.511 420 abc-koloni 234 Hyderabad AP
P_15 Harry Potter 123456 551 mg vej 444 Noida Delhi
P_40 Miley Parker 111121 11 fods vej 224 Bangalore KA
P_10 Herman Busk 123.423 34 thanco Street 432 Delhi Delhi
P_18 Dan Brun 134.523 50. uafhængige vej 145 Gurugram Haryana
P_20 James Russel 111111 101 mg vej 678 Bangalore KA
P_1 Miley Madison 100011 45. kaverapplayout 987 Chennai TN

Lad os nu bruge dette eksempel til at forstå funktionaliteten af ​​sammenføjningerne. Vi kan se, at forholdet mellem de to tabeller, dvs. ORDER_DETAILS-tabellen og CUSTOMER_DETAILS-tabellen er etableret af nøglen, der har værdien af ​​kunde-id, dvs. Customer_Id, som er en primær nøgle i CUSTOMER_DETAILS-tabellen og en fremmed nøgle i ORDER_DETAILS-tabel.

Få vigtige punkter, der skal bemærkes her, før vi fortsætter, er:

  • Ikke alle kunder i vores CUSTOMER_DETAILS-tabel har afgivet en ordreforespørgsel.
  • Ikke alle ordreforespørgsler, som vi har i vores ORDER_DETAILS-tabel, har en kunde_id, der findes i vores CUSTOMER_DETAILS-tabel, hvilket betyder, at for nogle ordrer er der ingen detaljer om kunden.

3. Indre sammenføjning

Inner Join giver dig kun de poster, som betingelsen er opfyldt for.

Forespørgsel:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
inner join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Produktion:

Cust_First_Name kunde_email No_of_Items ORDER_AMOUNT Bestillingsdato
Miley 3 5500 2019/01/20
James 2 6500 2019/02/10
Miley 2 20.656 2019/12/15

4. Venstre deltag

Venstre tilmelding giver dig alle poster fra venstre tabel dvs. CUSTOMER_DETAILS-tabellen. Hvis der ikke er ordrer, der er placeret af kunden, returnerer det en nulværdi for kolonnerne i ORDER_DETAILS-tabellen.

Forespørgsel:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
left join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Produktion:

Cust_First_Name kunde_email No_of_Items ORDER_AMOUNT Bestillingsdato
Alice NUL NUL NUL
James 2 6500 2019/02/10
Harry NUL NUL NUL
Miley NUL NUL NUL
Herman NUL NUL NUL
Dan NUL NUL NUL
James NUL NUL NUL
Miley 3 5500 2019/01/20
Miley 2 20.656 2019/12/15

5. Right Join

Højre, Deltagelse giver dig alle poster fra den rigtige tabel, dvs. ORDER_DETAILS-tabellen. Hvis der ikke er fundet kundeposter for ordren, returnerer den en nulværdi for kolonnerne i tabellen CUSTOMER_DETAILS.

Forespørgsel:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
right join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Produktion:

Cust_First_Name kunde_email No_of_Items ORDER_AMOUNT Bestillingsdato
Miley 3 5500 2019/01/20
James 2 6500 2019/02/10
NUL NUL 1 10000 2019/05/27
NUL NUL 4 4000 2019/11/07
Miley 2 20.656 2019/12/15
NUL NUL 3 15000 2019/10/27

6. Fuld deltagelse

Full Join giver dig alle de poster, der er specificeret fra begge tabeller.

Forespørgsel:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
full join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Produktion:

Cust_First_Name kunde_email No_of_Items ORDER_AMOUNT Bestillingsdato
Alice NUL NUL NUL
James 2 6500 2019/02/10
Harry NUL NUL NUL
Miley NUL NUL NUL
Herman NUL NUL NUL
Dan NUL NUL NUL
James NUL NUL NUL
Miley 3 5500 2019/01/20
Miley 2 20.656 2019/12/15
NUL NUL 1 10000 2019/05/27
NUL NUL 4 4000 2019/11/07
NUL NUL 3 15000 2019/10/27

Fordele ved sammenføjninger i SQL

  1. Hurtigere udførelse, hvilket betyder hurtigere hentning af de ønskede kolonner.
  2. Optimeret, læsbar og forståelig
  3. Forøgelse af ydelsen.

Konklusion

Som set bruger vi JOINs til at tilføje & hente felterne fra forskellige tabeller.

  • Inner Join henter poster, hvor den givne betingelse er opfyldt.
  • Left Join giver dig alle rækker fra venstre tabel, selv når den givne betingelse ikke stemmer overens.
  • Right Join giver dig alle rækker fra venstre tabel, selv når den givne betingelse ikke stemmer overens.
  • Full Join returnerer alle rækker, når der er en kamp i et af tabellerne.
  • Deltageforespørgsler kan bruges med kommandoer som - SELECT, INSERT, UPDATE, DELETE.
  • Forbindelser klarer sig også sammen med forskellige klausuler som - GROUP BY, SUB QUERIES, WHERE, AGGREGATE FUNCTIONS, etc.

Anbefalet artikel

Dette har været en guide til typer af sammenføjninger i SQL. Her diskuterer vi de forskellige typer sammenføjninger i SQL og dens fordele sammen med eksempler. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Fordele ved NoSQL
  2. SQL-styringsværktøjer
  3. Database i SQL
  4. Jokertegn i SQL
  5. Top 6 typer sammenføjninger i MySQL med eksempler