Johdatus liittymistyyppeihin SQL: ssä

SQL: n liittymislauseke palvelee kahden tai useamman taulukon rivien yhdistämistä. Rivien yhdistämisprosessi riippuu sarakkeesta, joka liittyy niihin. SQL: n neljä erityyppistä liittymistä nimetään sisäiseksi liittymäksi, vasemmalle liittymiselle, oikealle liittymiselle ja täysliitokselle. Ennen kuin voimme todella aloittaa minkä tahansa liittymisen käytön, tarvitsemme RDBMS: n tai relaatiotietokannan hallintajärjestelmän, johon lataamme tiedot. Yksi erittäin helppo tapa ymmärtää liitokset on Venn-kaavion käyttö. Venn-kaavion avulla on helppo mitata kaikki mahdolliset ja loogiset suhteet eri tietojoukkojen välillä. Ymmärtäkäämme tämä yksi kerrallaan Venn-kaavion avulla. Myöhemmin ymmärrämme eron näiden välillä käyttämällä joitain käytännön esimerkkejä. Oletetaan, että tietokannassamme on kaksi tietojoukkoa, jotka on tallennettu taulukon yksi ja taulukon muodossa. Kahden taulukon välillä on jonkin verran suhdetta, joka määritetään ensisijaisen avaimen ja vieraan avaimen käsitteen muodossa. Jos liität kaksi taulukkoa, joilla on jonkinlainen suhde, Venn-kaavioesitys skenaariosta on jotain,

Tämän päällekkäisyyden määrä määrää samankaltaisuuden kahden taulukon, ts. Taulukon A ja taulukon B välillä. Tämä tarkoittaa, että taulukon yhden tietueiden lukumäärä, jotka vastaavat taulukon 2 tietueita, edustaa päällekkäisyysosaa. Tämä on yksi osajoukko dataa. Saamme neljä erityyppistä liittymistä perustuen tietojoukkoon, jonka valitsemme kahdesta taulukosta.

Liittymisen syntaksi:

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

SQL-liittymien tyypit

  1. Sisäinen liittyminen
  2. Vasen liittyä
  3. Oikea liittyminen
  4. Täysi liittyminen

Seuraavaksi selitämme erityyppiset liitokset yksityiskohtaisesti.

1. Sisäinen liittyminen

Sisäisessä liitoksessa valitsemme vain tiedot, jotka ovat yhteisiä molemmissa taulukoissa. (eli osa 3 täällä) Jotta se olisi tarkempi, kaikki tietueet molemmista taulukoista, jotka vastaavat liitoksen yhteydessä mainittua ehtoa, poimitaan tästä liitoksesta.

Sisäisen liittymisen syntaksi:

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

2. Vasen liittyminen

Vasemmassa liittymässä valitaan kaikki tiedot vasemmasta taulukosta ja oikeasta taulukosta vain tietojoukko, joka vastaa liittymisen yhteydessä mainittua ehtoa (tässä alueella 1 + 3)

Vasemman liittymisen syntaksi:

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

3. Liity oikein

Oikeassa liittymisessä valitsemme kaikki tiedot oikealta taulukolta ja vasemmasta taulukosta vain tietojoukon, joka vastaa liittymisen yhteydessä mainittua ehtoa (tässä 3 + 2)

Oikean liittymisen syntaksi:

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

4. Täysi liittyminen

Täydellisessä liittymisessä molemmat taulukot muodostavat tietueet yhdistetään ja valitaan riippumatta ehdosta, jonka mukaan liittyminen on täyttynyt vai ei. (tässä 1 + 2 + 3)

Koko liittymisen syntaksi:

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

Esimerkkejä liittymisistä SQL: ssä

Tarkastellaan kahta alla olevaa taulukkoa:

1. Esimerkki tilauksesta

Taulukkotilaus sisältää yksityiskohdat asiakkaan tekemästä tilauksesta, kuten tilaustunnus, tilattujen tuotteiden lukumäärä, tilauksen määrä, tilauksen tehneen asiakkaan tunnus ja tilauksen tekemispäivä. Sellaista taulukkoa voi käyttää mikä tahansa online-sivusto tilauksen yksityiskohtien tallentamiseksi.

ORDER_DETAILS -taulukko:

Tilausnumero No_of_Items Tilausmäärä Asiakas ID Tilauspäivämäärä
123 3 5500 P_1 01.20.2019
234 2 6500 P_12 10.02.2019
345 1 10000 P_13 27.05.2019
456 4 4000 P_14 07.11.2019
567 2 20656 P_1 12.15.2019
678 3 15000 P_11 10.27.2019

2. Esimerkki CUSTOMER_DETAILSista

Otetaan nyt toinen taulukko, johon asiakkaan tiedot tallennetaan, jotta tilaus voidaan toimittaa vastaavaan osoitteeseen. Asiakaspöydässä on siis asiakkaan tiedot, kuten asiakastunnus (cust_id), joka on yksilöllinen jokaiselle asiakkaalle. Nyt etunimi ja sukunimi on tallennettu kenttään nimeltä - Cust_First_Name ja Cust_Last_Name. Muihin kenttiin tallennetaan tiedot, kuten sähköpostiosoite, asiakkaan matkapuhelinnumero sekä osoite, PIN-koodi, kaupunki ja osavaltio. Voimme siis nähdä, että asiakaspöytämme näyttää jonkinlaiselta -

CUSTOMER_DETAILS -taulukko:

Cust_Id Cust_First_Name Cust_Last_Name Pin-koodi Osoite Cust_Mobile Kaupunki Osavaltio Cust_email
P_50 Alice Pietari 111111 330 xyz katu 123 Bangalore KA
P_12 James Dsouza 155511 420 abc-pesäke 234 Hyderabad AP
P_15 ahdistaa savenvalaja 123456 551 mg tie 444 Noida Delhi
P_40 Miley Parker 111121 11 jalkaa tie 224 Bangalore KA
P_10 Herman Puska 123423 34 th thanco Street 432 Delhi Delhi
P_18 dan Ruskea 134523 50. itsenäinen tie 145 Gurugram Haryana
P_20 James Russel 111111 101 mg tie 678 Bangalore KA
P_1 Miley Madison 100011 45. kaverappa-asettelu 987 Chennai TN

Nyt käyttämällä tätä esimerkkiä, ymmärrämme liitosten toiminnallisuus. Voimme nähdä, että kahden taulukon eli ORDER_DETAILS-taulukon ja CUSTOMER_DETAILS-taulukon välinen suhde määritetään avaimella, jolla on asiakastunnuksen arvo eli asiakas_Id, joka on ensisijainen avain CUSTOMER_DETAILS-taulukossa ja vieraalla avaimella ORDER_DETAILS-taulukko.

Muutamia tärkeitä asioita, jotka tässä huomioitava ennen kuin jatkamme, ovat:

  • Kaikki CUSTOMER_DETAILS-taulukkomme asiakkaat eivät ole esittäneet tilauspyyntöä.
  • Kaikilla ORDER_DETAILS -taulukoissamme olevilla tilauspyynnöillä ei ole asiakasnumeroa, joka on CUSTOMER_DETAILS-taulukossamme, mikä tarkoittaa, että joillakin tilauksilla ei ole yksityiskohtia asiakkaasta.

3. Sisäinen liittyminen

Sisäinen liittyminen antaa sinulle vain ne tietueet, joiden ehto täyttyy.

kysely:

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

lähtö:

Cust_First_Name Cust_email No_of_Items Tilausmäärä Tilauspäivämäärä
Miley 3 5500 01.20.2019
James 2 6500 10.02.2019
Miley 2 20656 12.15.2019

4. Vasen liittyminen

Vasen liittyminen antaa sinulle kaikki tietueet vasemmasta taulukosta eli CUSTOMER_DETAILS-taulukosta. Jos asiakas ei ole tehnyt tilauksia, se palauttaa ORDER_DETAILS-taulukon sarakkeiden nolla-arvon.

kysely:

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

lähtö:

Cust_First_Name Cust_email No_of_Items Tilausmäärä Tilauspäivämäärä
Alice TYHJÄ TYHJÄ TYHJÄ
James 2 6500 10.02.2019
ahdistaa TYHJÄ TYHJÄ TYHJÄ
Miley TYHJÄ TYHJÄ TYHJÄ
Herman TYHJÄ TYHJÄ TYHJÄ
dan TYHJÄ TYHJÄ TYHJÄ
James TYHJÄ TYHJÄ TYHJÄ
Miley 3 5500 01.20.2019
Miley 2 20656 12.15.2019

5. Oikea liittyminen

Oikein, Liity antaa sinulle kaikki tietueet oikealta taulukolta eli ORDER_DETAILS-taulukolta. Jos tilauksesta ei löydy asiakasrekisteriä, se palauttaa nolla-arvon CUSTOMER_DETAILS-taulukon sarakkeille.

kysely:

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

lähtö:

Cust_First_Name Cust_email No_of_Items Tilausmäärä Tilauspäivämäärä
Miley 3 5500 01.20.2019
James 2 6500 10.02.2019
TYHJÄ TYHJÄ 1 10000 27.05.2019
TYHJÄ TYHJÄ 4 4000 07.11.2019
Miley 2 20656 12.15.2019
TYHJÄ TYHJÄ 3 15000 10.27.2019

6. Täysi liittyminen

Full Join antaa sinulle kaikki tietueet, jotka on määritetty molemmista taulukoista.

kysely:

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

lähtö:

Cust_First_Name Cust_email No_of_Items Tilausmäärä Tilauspäivämäärä
Alice TYHJÄ TYHJÄ TYHJÄ
James 2 6500 10.02.2019
ahdistaa TYHJÄ TYHJÄ TYHJÄ
Miley TYHJÄ TYHJÄ TYHJÄ
Herman TYHJÄ TYHJÄ TYHJÄ
dan TYHJÄ TYHJÄ TYHJÄ
James TYHJÄ TYHJÄ TYHJÄ
Miley 3 5500 01.20.2019
Miley 2 20656 12.15.2019
TYHJÄ TYHJÄ 1 10000 27.05.2019
TYHJÄ TYHJÄ 4 4000 07.11.2019
TYHJÄ TYHJÄ 3 15000 10.27.2019

Liittymien edut SQL: ssä

  1. Nopeampi suorittaminen, mikä tarkoittaa haluttujen sarakkeiden nopeampaa hakua.
  2. Optimoitu, luettava ja ymmärrettävä
  3. Suorituskyvyn paraneminen.

johtopäätös

Kuten näimme, liitämme ja haemme kentät eri taulukoista JOIN: in avulla.

  • Inner Join hakee tietueet, joissa annettu ehto täyttyy.
  • Vasen liittyminen antaa sinulle kaikki vasemman taulukon rivit, vaikka annettu ehto ei täyttäisi.
  • Oikea liittyminen antaa sinulle kaikki vasemman taulukon rivit, vaikka annettu ehto ei täyttäisi.
  • Täysi liittymä palauttaa kaikki rivit, kun yhdessä taulukossa on vastaavuus.
  • Liittymiskyselyjä voidaan käyttää komentoissa, kuten - VALITSE, Lisää, PÄIVITTÄ, POISTA.
  • Liitokset tulevat myös toimeen erilausekkeiden kanssa, kuten - GROUP BY, SUB QUERIES, WHERE, KOKONAISTOIMINNOT jne.

Suositeltava artikkeli

Tämä on opas SQL-liittymän tyyppeihin. Tässä keskustellaan SQL: n erityyppisistä liittymistä ja sen eduista yhdessä esimerkkien kanssa. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. NoSQL: n edut
  2. SQL-hallintatyökalut
  3. Tietokanta SQL: ssä
  4. Jokerimerkki SQL: ssä
  5. MySQL: n kuusi suosittua liittymistyyppiä ja esimerkkejä