Introduktion till typer av sammanfogningar i SQL

En kopplingsklausul i SQL tjänar syftet med att kombinera rader från två eller flera tabeller. Processen att kombinera rader beror på en kolumn som är relaterad till dem. De fyra olika typerna av sammanfogningar i SQL benämns som en inre sammanfogning, vänsterfog, högerfog och fullfog. Innan vi verkligen kan börja använda någon typ av koppling behöver vi ett RDBMS eller ett relationsdatabashanteringssystem där vi kommer att ladda uppgifterna. Ett av de mycket enkla sätten att förstå sammanfogningarna är genom att använda Venn-diagrammet. Med hjälp av ett Venn-diagram gör det enkelt att mäta alla möjliga och logiska relationer mellan olika uppsättningar av data. Låt oss förstå detta en efter en med Venn-diagrammet. Senare kommer vi att förstå skillnaden mellan dessa med hjälp av några praktiska exempel. Låt oss anta att det finns två datauppsättningar i vår databas lagrade i form av tabell ett och tabell två. Det finns en viss relation mellan de två tabellerna som specificeras i form av en primär nyckel och ett främmande nyckelbegrepp. Om du går med i två tabeller som har någon typ av relation kommer Venn-diagramrepresentationen av scenariot att vara något liknande,

Mängden på denna överlappning kommer att bestämma graden av likhet mellan de två tabellerna, dvs. tabell A och tabell B. Detta betyder att antalet poster från tabell ett, som matchar posten från tabell två, representeras av överlappningsavsnittet. Detta är en delmängd data. Vi får fyra olika typer av sammanfogningar baserat på den deluppsättning data vi väljer från de två tabellerna.

Syntax of Join:

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

Typer av sammanfogningar i SQL

  1. Inre koppling
  2. Vänster gå med
  3. Rätt gå
  4. Full gå med

Nedan förklarar vi olika typer av sammanfogningar i detalj.

1. Inre gå

I en inre koppling väljer vi bara de data som är vanliga i båda tabellerna. (dvs del 3 här) För att göra det mer exakt, väljs alla poster från båda tabellerna som matchar det villkor som nämns med sammanfogningen i denna sammanfogning.

Syntax of Inner Join:

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

2. Vänster gå med

I vänster sammanfogning väljer vi all data från vänster tabell och från höger tabell väljer vi bara den datauppsättning som matchar det villkor som nämns med kopplingen (här område 1 + 3)

Syntax av Left Join:

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

3. Right Delta

Vid höger koppling väljer vi alla data från den högra tabellen och från vänster tabell väljer du bara den datauppsättning som matchar det villkor som nämns med kopplingen (här 3 + 2)

Syntax av Right Join:

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

4. Full gå med

I fullständig sammanfogning, alla poster från båda tabellerna slås samman och väljs oavsett villkor som nämns med sammanfogningen har uppfyllt eller inte. (här 1 + 2 + 3)

Syntax of Full Join:

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

Exempel på Joins i SQL

Tänk på de två tabellerna nedan:

1. Exempel på ORDER_DETAILS

Tabellbeställningen innehåller detaljerna om den beställning som beställts av kunden, såsom order-ID, antalet beställda produkter, beställningens storlek, id för kunden som beställde och datum då ordern placerades. En sådan tabell kan användas av vilken som helst onlinewebbplats för att lagra beställningsinformationen.

ORDER_DETAILS Tabell:

ORDER_ID No_of_Items Beställningssumma Kundnummer Orderdatum
123 3 5500 P_1 2019/01/20
234 2 6500 P_12 2019/02/10
345 1 10 tusen P_13 2019/05/27
456 4 4000 P_14 2019/11/07
567 2 20.656 P_1 2019/12/15
678 3 15 tusen P_11 2019/10/27

2. Exempel på CUSTOMER_DETAILS

Låt oss nu ta en annan tabell där kundens detaljer lagras för att kunna leverera beställningen till sina respektive adresser. Kundtabellen kommer därför att ha kundens detaljer såsom kund-id (cust_id) som kommer att vara unik för varje kund. Nu förnamnet och efternamnet lagras i fältet som heter Cust_First_Name och Cust_Last_Name. De andra fälten lagrar information som e-post-id, kundens mobilnummer tillsammans med adressen, Pincode, stad och stat. Således kan vi se att vårt kundtabell ser ut som -

CUSTOMER_DETAILS Tabell:

Cust_Id Cust_First_Name Cust_Last_Name Pinkod Adress Cust_Mobile Stad stat Cust_email
P_50 Alice Peter 111111 330 xyz street 123 Bangalore KA
P_12 James Dsouza 155.511 420 abc koloni 234 Hyderabad AP
P_15 Harry Krukmakare 123456 551 mg väg 444 Noida delhi
P_40 Miley Parker 111.121 11 fot väg 224 Bangalore KA
P_10 Herman buske 123.423 34 thanco Street 432 delhi delhi
P_18 Dan Brun 134.523 50: e oberoende vägen 145 Gurugram Haryana
P_20 James Russel 111111 101 mg väg 678 Bangalore KA
P_1 Miley Madison 100011 45: e kaverapplayout 987 Chennai TN

Nu använder vi detta exempel, låt oss förstå funktionaliteten hos förbindelserna. Vi kan se att förhållandet mellan de två tabellerna, dvs ORDER_DETAILS-tabellen och CUSTOMER_DETAILS-tabellen är upprättat av nyckeln som har värdet för kund-ID, dvs. ORDER_DETAILS-tabell.

Några viktiga punkter att notera här innan vi fortsätter är:

  • Inte alla kunder i vår CUSTOMER_DETAILS-tabell har gjort en beställningsförfrågan.
  • Inte all beställningsbegäran som vi har i vår ORDER_DETAILS-tabell har en kund_id som finns i vår CUSTOMER_DETAILS-tabell, vilket innebär att det för vissa beställningar inte finns någon detalj om kunden.

3. Inre gå

Inner Join ger dig endast de poster som villkoret är uppfyllda för.

Fråga:

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 Cust_email No_of_Items Beställningssumma Orderdatum
Miley 3 5500 2019/01/20
James 2 6500 2019/02/10
Miley 2 20.656 2019/12/15

4. Vänster gå med

Left Join ger dig alla poster från den vänstra tabellen, dvs. CUSTOMER_DETAILS-tabellen. Om det inte finns några beställningar av kunden returnerar det ett nollvärde för kolumnerna i tabellen ORDER_DETAILS.

Fråga:

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 Cust_email No_of_Items Beställningssumma Orderdatum
Alice NULL NULL NULL
James 2 6500 2019/02/10
Harry NULL NULL NULL
Miley NULL NULL NULL
Herman NULL NULL NULL
Dan NULL NULL NULL
James NULL NULL NULL
Miley 3 5500 2019/01/20
Miley 2 20.656 2019/12/15

5. Right Join

Right, Join kommer att ge dig alla poster från den högra tabellen, dvs ORDER_DETAILS-tabellen. Om det inte finns några kundregister för beställningen kommer det att returnera ett nollvärde för kolumnerna i tabellen CUSTOMER_DETAILS.

Fråga:

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 Cust_email No_of_Items Beställningssumma Orderdatum
Miley 3 5500 2019/01/20
James 2 6500 2019/02/10
NULL NULL 1 10 tusen 2019/05/27
NULL NULL 4 4000 2019/11/07
Miley 2 20.656 2019/12/15
NULL NULL 3 15 tusen 2019/10/27

6. Fullständig anslutning

Full Join ger dig alla poster som anges från båda tabellerna.

Fråga:

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 Cust_email No_of_Items Beställningssumma Orderdatum
Alice NULL NULL NULL
James 2 6500 2019/02/10
Harry NULL NULL NULL
Miley NULL NULL NULL
Herman NULL NULL NULL
Dan NULL NULL NULL
James NULL NULL NULL
Miley 3 5500 2019/01/20
Miley 2 20.656 2019/12/15
NULL NULL 1 10 tusen 2019/05/27
NULL NULL 4 4000 2019/11/07
NULL NULL 3 15 tusen 2019/10/27

Fördelar med Joins i SQL

  1. Snabbare körning vilket innebär snabbare hämtning av önskade kolumner.
  2. Optimerad, läsbar och förståelig
  3. Ökning i prestanda.

Slutsats

Som vi använder använder vi JOINs för att lägga till och hämta fälten från olika tabeller.

  • Inner Join hämtar poster där det givna villkoret är uppfyllt.
  • Left Join ger dig alla rader från vänsterbordet, även om det givna villkoret inte matchar.
  • Right Join ger dig alla rader från det vänstra bordet, även om det givna villkoret inte matchar.
  • Full Join ger alla raderna när det finns en matchning i ett av tabellerna.
  • Gå med frågor kan användas med kommandon som - VÄLJ, INSERT, UPDATE, DELETE.
  • Föreningar får också överensstämmelse med olika klausuler som - GROUP BY, SUB QUERIES, WHERE, AGGREGATE FUNCTIONS, etc.

Rekommenderad artikel

Detta har varit en guide till typer av sammanfogningar i SQL. Här diskuterar vi de olika typerna av Joins i SQL och dess fördelar tillsammans med exempel. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Fördelar med NoSQL
  2. SQL-hanteringsverktyg
  3. Databas i SQL
  4. Wildcard i SQL
  5. Topp 6 typer av sammanfogningar i MySQL med exempel