Bevezetés a MySQL csatlakozásaiba

A MySQL Joins fontos szerepet játszik, ha két táblát össze kell kötnünk egy vagy több közös érték alapján, amelyet két tábla oszt meg.

Példa : Vegyük figyelembe, hogy két táblánk van, az egyik a munkavállalói tábla, amely a következőkből áll: alkalmazott_azonosító, phn_no, fizetés és osztály. Egy másik táblázat a címtábla, amely a munkavállalói azonosítóból és a címből áll. Ha ki kell derítenünk a személyi azonosítót, az osztályt és a címet, akkor csatlakoznunk kell mind a két közös táblát megosztó táblához, mint a munkavállalói azonosító.

Lekérdezés :

SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;

A MySQL 6 legfontosabb csatlakozási típusa

Különböző típusú csatlakozások léteznek a MySQL-ben. Az alábbiakban említett csatlakozások napi használatban találkoznak, és a leghasznosabb akkor, ha sok kérdés valós esetben történik.

  1. Belső összekapcsolás
  2. Balra csatlakozz
  3. Jobb csatlakozás
  4. Teljes külső csatlakozás
  5. Self-join
  6. Keresztül csatlakozz

1. Belső csatlakozás

A belső csatlakozás azt az értéket adja vissza, amely megegyezik mindkét táblázatban.

Ez a rész a fenti képen látható módon kerül a kimenetbe.

1. példa:

Emp_id Osztály Fizetés
1001 AZT 1000
1002 CSR 800
1003 AZT 2000

Ez a munkavállalói táblázat.

Emp_id Cím
1002 Delhi
1003 Bangalore
1005 Bbsr

Itt található azoknak a munkavállalóknak a címtáblája. A szülőtábla alkalmazottjának elsődleges kulcsát, az emp_id-et, idegen kulcsként használjuk a címtáblában, amely a gyermektábla. Megtaláljuk az egy alkalmazott emp_id-jét, részlegét és címét a belső csatlakozás használatával. Mivel a belső csatlakozási állapotok, lekérdezi azokat a rekordokat, amelyek mindkét táblázatban megtalálhatók / közösek.

Lekérdezés:

SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;

Annak érdekében, hogy elkerüljük az időigényt, a táblázat nevének álnevet adunk. A fenti lekérdezésben az 'emp' álnevet és a címtáblához az 'hirdetéseket' használjuk.

Kimenet:

Emp_id Osztály Cím
1002 CSR Delhi
1003 AZT Bangalore

Mivel a fenti példában az emp2ID 1002 és az 1003 mindkét tábla között közös volt, a belső összekapcsolási parancs csak ezeknek az alkalmazottaknak hozza ki a kimenetet.

2. példa:

Itt van 2 asztal, table1 és table2. Mindkét táblázat egy attribútumból áll, mint A oszlop és B oszlop.

Asztal 1

A. oszlop
1
1
2
3
4

2. táblázat

B oszlop
1
2
2
3
3
5

Lekérdezés:

If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;

Kimenet:

A. oszlop B oszlop
1 1
1 Nulla
2 2
Nulla 2
3 3
Nulla 3

2. Balra csatlakozzon

Ez az összekapcsolás a bal oldali táblából származó összes rekordot, a jobb oldali táblából pedig az illesztett rekordokat adja vissza.

Mint a fenti ábra mutatja, az A táblázat összes rekordjából, valamint az A és B általános rekordjaiból áll.

1. példa:

Ügyfél-azonosító Név Város
1 Harish Cuttack
2 David Bangalore
3 Mahesh Bhubaneswar
4 Sam Kolkata

Ügyfél táblázat:

Rendelés azonosító Összeg Ügyfél-azonosító
19868 7575, 00 4
19976 434.654, 00 2
99680 7457, 00 3

Megrendelési táblázat:

A bal oldali csatlakozás használatával megtudjuk az ügyfél-azonosítót, a nevet és a megrendelési azonosítót.

Lekérdezés:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;

Kimenet:

Ügyfél-azonosító NévRendelés azonosító
1 Harish nulla
2 David 19976
3 Mahesh 99680
4 Sam 19868

Ahogy ezt a bal oldali csatlakozást megvitattuk, az összes ügyfélazonosítót az ügyféltáblázatból és a két asztal közötti közös azonosítókat beolvasta. Az customer_id '1' esetében null értékkel fog megjelenni, mert az '1' customer_id nem található megrendelési táblában.

2. példa:

Itt van 2 asztal, table1 és table2. Mindkét táblázat egy attribútumból áll, mint A oszlop és B oszlop.

Asztal 1

A. oszlop
1
1
2
2
3

2. táblázat

B oszlop
1
2
2
4
4
5
5

Lekérdezés:

If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;

A. oszlop B oszlop
1 1
1 Nulla
2 2
2 2
3 Nulla

3. Jobb csatlakozás

Ez az összekapcsolás minden rekordot a jobb oldali táblából és a megfelelő táblát a bal oldali táblából ad vissza.

A fenti ábra azt mutatja, hogy az összes rekordot lehívja a B táblából és a közös táblából, amely mindkét táblában megtalálható.

Példa:

Ügyfél-azonosító Név Város
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 kos Mumbai

Ügyfél táblázat:

Rendelés azonosító Összeg Ügyfél-azonosító
19868 7575, 00 4
19976 434.654, 00 2
99680 7457, 00 3

Megrendelési táblázat:

A kliens azonosítóját, a nevét és a megrendelés azonosítóját a megfelelő csatlakozás segítségével megtudjuk.

Lekérdezés:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;

Kimenet:

Ügyfél-azonosító Név Rendelés azonosító
2 nulla 19976
3 Mahesh 99680
4 Sam 19868

Ahogyan itt hajtottuk végre a megfelelő csatlakozást, így a lekérdezés az összes ügyfél-azonosítót lehívta a megrendelési táblázatból és a mindkét táblázatban található közös rekordokból.

4. Teljes külső csatlakozás

A teljes külső illesztés mind a táblák összes rekordját visszaadja, ha közös mező van megosztva.

Példa:

Ügyfél-azonosító Név Város
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 kos Mumbai

Ügyfél táblázat:

Rendelés azonosító Összeg Ügyfél-azonosító
19868 7575, 00 4
19976 434.654, 00 2
99680 7457, 00 3

Megrendelési táblázat:

A kliens azonosítót, a nevet és a megrendelési azonosítót a teljes külső csatlakozás segítségével megtudjuk.

Lekérdezés:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;

Kimenet:

Ügyfél-azonosító Név Rendelés azonosító
2 nulla 19976
3 Mahesh 99680
4 Sam 19868
5 kos nulla

Ez a teljes külső csatlakozás lehívta az összes ügyfélazonosítót az ügyféltáblázatból, valamint a megrendelési táblázatból.

5. Önálló csatlakozás

Az öncsatlakozás egy rendszeres csatlakozás, és itt az asztal csak önmagával kapcsolódik össze.

Emp_id Név Telefonszám Város Ország
1001 R. Madhvan 9687687698 Bangalore India
1002 Gobu Sharma 9856453423 Pune India
1003 Debasish Das 8765456787 Mumbai India
1004 Amit Rout 4567788635 Pune India
1005 Sambit Kar 8789887873 Hyderabad India

Itt található a több területről álló munkavállalói táblázat. Megtudjuk az ugyanabban a városban élő munkavállalókat.

Lekérdezés :

SELECT e1.name AS Employee_name1, e2.name AS employee_name2, e1.City
FROM employee e1, employee e2
WHERE e1.name e2.name
AND e1.city = e2.city;

Teljesítmény :

Employee_name1 Employee_name2 e1.city
Gobu Sharma Amit Rout Pune
Amit Rout Gobu Sharma Pune

6. Csatlakozzon

Ez az összekapcsolás olyan eredményt hoz, ahol az első táblázat sorainak száma megsokszorozódik a második táblázat soraival. Ezt a fajta eredményt Cartesian terméknek nevezzük. Ha a WHERE záradékot használjuk ezzel a csatlakozással, akkor ez belső csatlakozásként fog működni.

Példa:

Prod_id Termék név Prod_unit Vállalati azonosító
1 Chex keverék db 12
2 Cheez-it db 15
3 Keksz db 16

Termék táblázat:

Vállalati azonosító Cégnév Company_city
15 foodies Delhi
16 Jack n Jill Cuttack
17 Természetes Bangalore

Vállalati táblázat:

Ezekre a táblákra keresztirányú csatlakozást alkalmazunk.

Lekérdezés :

SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;

Teljesítmény :

p.product_name p.prod_unit c.company_name
Chex keverék db foodies
Cheez-it db foodies
Keksz db foodies
Chex keverék db Jack n Jill
Cheez-it db Jack n Jill
Keksz db Jack n Jill
Chex keverék db Természetes
Cheez-it db Természetes
Keksz db Természetes

Következtetés

Ezeknek a csatlakozásoknak a jelentősége nagyon fontos valósidejű forgatókönyvekben, valamint néhány más technológiában történő munka során. Az olyan vizualizációkban, mint a Tableau és a Power BI, a csatlakozások alapvető szerepet játszanak. Ennek strukturált gyakorlata kulcsfontosságú az új technikák és készségek beágyazása szempontjából.

Ajánlott cikk

Ez egy útmutató a Joins a MySQL-hez. Itt tárgyaljuk a MySQL 6 legfontosabb csatlakozási típusát, például a Belső, Bal, Jobb, Teljes, Saját, Kereszt és példáit, valamint a Lekérdezést és a Kimenetet. akkor is áttekintheti javasolt cikkeinket, hogy többet megtudjon -

  1. A 10 legfontosabb MySQL parancs
  2. Bevezetés a MySQL operátorokba
  3. MySQL vs SQLite | A 14 legjobb összehasonlítás
  4. A MySQL String 23 legfontosabb funkciója
  5. Magyarázza el a Parancs beszúrása a MySQL-ben példákkal
  6. Az elsődleges kulcs és az idegen kulcs 6 legfontosabb különbsége