Introducere în Tipuri de uniri în SQL

O clauză Join în SQL servește la combinarea rândurilor din două sau mai multe tabele. Procesul de combinare a rândurilor depinde de o coloană care este legată de ele. Cele patru tipuri diferite de uniri în SQL sunt numite ca unire interioară, unire stânga, unire dreapta și unire completă. Înainte de a putea începe cu adevărat să folosim orice tip de aderare, avem nevoie de un RDBMS sau un sistem relațional de gestionare a bazelor de date în care vom încărca datele. Una dintre modalitățile foarte ușoare de a înțelege unirile este folosirea diagramei Venn. Utilizarea unei diagrame Venn facilitează evaluarea tuturor relațiilor posibile și logice între diferite seturi de date. Să înțelegem asta unul câte unul folosind diagrama Venn. Mai târziu vom înțelege diferența dintre acestea folosind câteva exemple practice. Să presupunem că există două seturi de date în baza noastră de date stocate sub forma tabelului unu și a tabelului doi. Există o oarecare relație între cele două tabele care este specificată sub forma unei chei primare și a unui concept de cheie străină. Dacă vă alăturați două tabele având un fel de relație, reprezentarea diagramei Venn a scenariului va fi ceva de genul,

Suma acestei suprapuneri va determina gradul de similitudine între cele două tabele, adică, tabelul A și tabelul B. Aceasta înseamnă că numărul de înregistrări din tabelul unu, care se potrivesc cu înregistrările din tabelul doi este reprezentat de secțiunea de suprapunere. Acesta este un subset de date. Obținem patru tipuri diferite de uniri pe baza subsetului de date pe care le culegem din cele două tabele.

Sintaxa de Alăturare:

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

Tipuri de uniri în SQL

  1. Alăturați-vă la interior
  2. Alăturați-vă stânga
  3. Alăturați-vă corect
  4. Alătură-te complet

Mai jos vă explicăm diferite tipuri de uniri în detaliu.

1. Alăturați-vă în interior

Într-o îmbinare interioară, selectăm doar datele care sunt comune în ambele tabele. (adică partea a 3-a aici) Pentru a fi mai precisă, toate înregistrările din ambele tabele care corespund condiției menționate cu unirea sunt alese în această aderare.

Sintaxa Alăturarea interioară:

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

2. Alăturați stânga

În unirea din stânga, selectăm toate datele din tabelul din stânga și din tabelul din dreapta selectăm doar setul de date care se potrivește cu condiția menționată cu unirea (aici zona 1 + 3)

Sintaxa participare la stânga:

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

3. Alăturați-vă drept

În alăturarea dreaptă, selectăm toate datele din tabelul din dreapta și din tabelul din stânga selectăm doar setul de date care se potrivește cu condiția menționată cu alăturarea (aici 3 + 2)

Sintaxa dreptului de alăturare:

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

4. Alătură-te complet

Înscriere completă, toate înregistrările formează ambele tabele fuzionate și selectate indiferent de condiția menționată, odată cu împlinirea sau nu. (aici 1 + 2 + 3)

Sintaxa alăturarii complete:

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

Exemple de uniri în SQL

Luați în considerare cele două tabele prezentate mai jos:

1. Exemplu de ORDER_DETAILS

Comanda din tabel conține detaliile comenzii plasate de client, precum ID-ul comenzii, numărul de produse comandate, suma comenzii, id-ul clientului care a plasat comanda și data la care a fost plasată comanda. Un astfel de fel de tabel poate fi utilizat de orice site web online pentru stocarea detaliilor comenzii.

Tabel ORDER_DETAILS:

Comanda ID No_of_Items Cantitatea comenzii Număr de înregistrare client Data comandă
123 3 5500 P_1 01/20/2019
234 2 6500 P_12 02/10/2019
345 1 10000 P_13 05/27/2019
456 4 4000 P_14 11/07/2019
567 2 20656 P_1 12/15/2019
678 3 15000 P_11 10/27/2019

2. Exemplu de CUSTOMER_DETAILS

Acum să luăm un alt tabel în care vor fi stocate detaliile clientului, astfel încât să poată livra comanda la adresele respective. Prin urmare, tabelul de clienți va avea detaliile clientului, precum ID-ul clientului (cust_id), care va fi unic pentru fiecare client. Acum numele și prenumele sunt stocate în câmpul numit - Cust_First_Name și Cust_Last_Name. Celelalte câmpuri vor stoca informații precum ID-ul de e-mail, numărul de telefon al clientului împreună cu adresa, Pincode, orașul și statul. Astfel, putem vedea că tabelul nostru de clienți va arăta ca ceva -

CUSTOMER_DETAILS Tabel:

Cust_Id Cust_First_Name Cust_Last_Name Cod PIN Abordare Cust_Mobile Oraș Stat Cust_email
P_50 Alice Petru 111111 Str. 330 xyz 123 Bangalore KA
P_12 James Dsouza 155511 420 abc colonie 234 Hyderabad AP
P_15 dezgoli Olar 123456 551 mg rutier 444 Noida Delhi
P_40 Miley Parker 111121 Drum de 11 metri 224 Bangalore KA
P_10 Herman tufiș 123423 34 str . Thanco 432 Delhi Delhi
P_18 Dan Maro 134523 50 de drum independent 145 Gurugram Haryana
P_20 James Russel 111111 101 mg rutier 678 Bangalore KA
P_1 Miley Madison 100011 45. aranjament kaverappa 987 Chennai TN

Utilizând acum acest exemplu, să înțelegem funcționalitatea unirilor. Putem vedea că relația dintre cele două tabele adică, tabelul ORDER_DETAILS și tabelul CUSTOMER_DETAILS este stabilită prin cheia care are valoarea identității clientului, adică Client_Id, care este o cheie primară în tabelul CUSTOMER_DETAILS și o cheie străină în Tabelul ORDER_DETAILS.

Puține puncte importante de notat aici înainte de a continua sunt:

  • Nu toți clienții din tabelul nostru CUSTOMER_DETAILS au trimis o cerere de comandă.
  • Nu toată cererea de comandă pe care o avem în tabelul nostru ORDER_DETAILS are un client_id care este prezent în tabelul nostru CUSTOMER_DETAILS, ceea ce înseamnă că pentru unele comenzi nu există detalii despre client.

3. Alăturați-vă înăuntru

Inner Join vă va oferi doar acele înregistrări pentru care condiția este îndeplinită.

Solicitare:

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

ieşire:

Cust_First_Name Cust_email No_of_Items Cantitatea comenzii Data comandă
Miley 3 5500 01/20/2019
James 2 6500 02/10/2019
Miley 2 20656 12/15/2019

4. Stânga Alăturați-vă

Alăturare stângă vă va oferi toate înregistrările din tabelul din stânga, adică tabelul CUSTOMER_DETAILS. Dacă nu există comenzi plasate de către client, acesta va returna o valoare nulă pentru coloanele din tabelul ORDER_DETAILS.

Solicitare:

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

ieşire:

Cust_First_Name Cust_email No_of_Items Cantitatea comenzii Data comandă
Alice NUL NUL NUL
James 2 6500 02/10/2019
dezgoli NUL NUL NUL
Miley NUL NUL NUL
Herman NUL NUL NUL
Dan NUL NUL NUL
James NUL NUL NUL
Miley 3 5500 01/20/2019
Miley 2 20656 12/15/2019

5. Alăturați-vă drept

Drept, Join vă va oferi toate înregistrările din tabelul din dreapta, adică din tabelul ORDER_DETAILS. Dacă nu se găsesc înregistrări ale clientului pentru comandă, se va returna o valoare nulă pentru coloanele din tabelul CUSTOMER_DETAILS.

Solicitare:

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

ieşire:

Cust_First_Name Cust_email No_of_Items Cantitatea comenzii Data comandă
Miley 3 5500 01/20/2019
James 2 6500 02/10/2019
NUL NUL 1 10000 05/27/2019
NUL NUL 4 4000 11/07/2019
Miley 2 20656 12/15/2019
NUL NUL 3 15000 10/27/2019

6. Alătură-te complet

Full Join vă va oferi toate înregistrările specificate din ambele tabele.

Solicitare:

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

ieşire:

Cust_First_Name Cust_email No_of_Items Cantitatea comenzii Data comandă
Alice NUL NUL NUL
James 2 6500 02/10/2019
dezgoli NUL NUL NUL
Miley NUL NUL NUL
Herman NUL NUL NUL
Dan NUL NUL NUL
James NUL NUL NUL
Miley 3 5500 01/20/2019
Miley 2 20656 12/15/2019
NUL NUL 1 10000 05/27/2019
NUL NUL 4 4000 11/07/2019
NUL NUL 3 15000 10/27/2019

Avantajele unirilor în SQL

  1. Execuție mai rapidă, ceea ce înseamnă recuperare mai rapidă a coloanelor dorite.
  2. Optimizat, citit și de înțeles
  3. Creșterea performanței.

Concluzie

După cum s-a văzut, folosim JOIN-uri pentru a adăuga și obține câmpurile din diferite tabele.

  • Alăturați-vă interioare preia înregistrări în care condiția dată este îndeplinită.
  • Alăturare stângă vă va oferi toate rândurile din tabelul din stânga, chiar și atunci când condiția dată nu se potrivește.
  • Right Join vă va oferi toate rândurile din tabelul din stânga, chiar și atunci când condiția dată nu se potrivește.
  • Full Join întoarce toate rândurile când există o potrivire într-una din tabele.
  • Interogările de înscriere pot fi utilizate cu comenzi de genul - SELECT, INSERT, ACTUALIZARE, Ștergeți.
  • De asemenea, unirile se înțeleg cu diferite clauze precum: GRUPA BY, SUB QUERIES, UNDE, FUNCȚII AGRATE, etc.

Articol recomandat

Acesta a fost un ghid pentru Tipuri de uniri în SQL. Aici vom discuta despre diferitele tipuri de uniri în SQL și Avantajele sale împreună cu exemple. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Avantajele NoSQL
  2. Instrumente de management SQL
  3. Baza de date în SQL
  4. Wildcard în SQL
  5. Top 6 tipuri de uniri în MySQL cu exemple