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.
- Belső összekapcsolás
- Balra csatlakozz
- Jobb csatlakozás
- Teljes külső csatlakozás
- Self-join
- 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év | Rendelé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 -
- A 10 legfontosabb MySQL parancs
- Bevezetés a MySQL operátorokba
- MySQL vs SQLite | A 14 legjobb összehasonlítás
- A MySQL String 23 legfontosabb funkciója
- Magyarázza el a Parancs beszúrása a MySQL-ben példákkal
- Az elsődleges kulcs és az idegen kulcs 6 legfontosabb különbsége