hu en sv en hu it hu en hu de hu ja hu hu hu hu hu hu hu hu hu ja hu hu hu hu en hu hu hu hu hu hu hu hu hu es hu hu hu hu en hu hu hu en sv eo eo fr en de en sl hu fr hu et et tr hu en en en en sv de ms sv fr sv fr en de sv hu de hu hu et et hu hu hu hu tr hu en en hu hu hu en en en sv de en sl hu fr ms sv fr sv eo eo fr en fr en de sv eo eo fr en hu de hu hu hu en en en en hu hu en hu en hu en hu en hu hu hu hu es hu hu hu hu en hu hu hu en sv eo eo fr en de en sl hu fr hu et et tr hu en en en en sv de ms sv fr sv fr en de sv hu de en hu hu hu hu cs en hu es hu hu hu hu et et tr hu en hu hu hu en en en en en de en sl hu fr sv de ms sv sv eo eo fr en fr sv fr en sv eo eo fr en de sv hu de en hu hu hu hu cs en hu es hu hu hu hu et et tr hu en hu hu hu en en en en en de en sl hu fr sv de ms sv sv eo eo fr en fr sv fr en sv eo eo fr en de sv hu de fr hu en hu en zh zh zh zh sv en en hu en zh zh zh zh en eo hu fr en zh zh zh zh en hu hu hu hu cs en hu et et tr et et hu hu hu hu en en en en en hu hu hu en de sv ms sv de en sl hu fr sv fr fr fr sv eo eo fr en sv de hu de sv eo eo fr en zh zh zh zh fr hu en hu en zh zh zh zh sv en en hu en zh zh zh zh en eo hu fr en en hu hu hu hu es es es tr en hu hu hu hu hu hu hu hu hu fr hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu hu en hu it hu en hu de hu ja hu hu hu hu hu es es es tr en hu
SQL táblák összekapcsolása: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN (Adatbázis-lekérdezések utasításai példákkal) - WEBiskola
Weboldalszerkesztő (HTML, CSS, JS kódszerkesztő) HTML-színkód generátor (Hexadecimális, RGB, HSL színkód kereső)
Ebben az adatbázis-kezeléssel foglalkozó leckében a táblák összekapcsolásának módjait mutatjuk be: az INNER JOIN-t, a LEFT (OUTER) JOIN-t, a RIGHT (OUTER) JOIN-t és a FULL OUTER JOIN-t.
Ebben az újabb adatbázis-kezeléssel foglalkozó leckében a táblák összekapcsolásának módjaival fogunk megismerkedni. Bemutatjuk az INNER JOIN-t, a LEFT (OUTER) JOIN-t, a RIGHT (OUTER) JOIN-t és a FULL OUTER JOIN-t.
Mi az az összekapcsolás? Miért van szükség rá?
Egy adatbázisban általában nem csak egy táblát tárolunk, hanem többet is. Az adatok átláthatóságának érdekében az adatokat célszerű több táblába rendezni.
Például egy webshop esetében érdemes külön adatbázis táblát létrehozni a vásárlók és a vásárlások számára. Fölösleges egyetlen egy táblában tárolni a vásárló nevét és a vásárlás részleteit, például a rendelés azonosítót és a rendelt termékeket. Miért? Mert, ha egy vásárló többször vásárol, akkor a személyes adatai (például név, telefonszám, cím) többször szerepelni az adatbázisban. Ezt nevezzük redundanciának.
Ha készítünk egy külön táblát a vásárlóknak, amelyben az adataikat tároljuk és egy külön táblát a vásárlásoknak, akkor a vásárlást tartalmazó rekordban csak a vásárlóra kell hivatkozni, azaz nem kell megadni minden adatát újból, mert a vásárló tábla már tartalmazza azt.
Az összekapcsolással (angolul JOIN) két vagy több táblát tudunk összekötni egy összefüggő mező alapján, azaz két különböző tábla rekordjait tudjuk egybefűzve megjeleníteni.
Nézzük meg egy példán keresztül, úgy sokkal érthetőbb lesz. A webáruházas példánál maradva legyen egy “vasarlok” és egy “vasarlas” táblánk. A “vasarlok” táblában tároljuk a vásárlók adatait, minden vásárlónak megadtunk egy egyedi azonosítót (ID), amely alapján egyértelműen beazonosítható. A “vasarlasok” táblában van egy a vásárlást azonosító ID és egy a vásárlót azonosító ID. A két tábla között a kapcsolódási pont a “vasarlok” tábla ID-ja és a “vasarlasok” tábla vasarloID-ja.
Kód nélkül és az összekapcsolás pontos bemutatása nélkül, ilyen lekérdezéseket készíthetünk a fenti két tábla összekapcsolásával. Ha nem külön táblában tárolnánk az adatokat, akkor a lenti példában nagyon jól látszik, hogy lennének redundáns adatokat, azaz egy személy adata többször is előfordulna az adatbázisban. De így, hogy két táblára bontottuk az adatokat, így az adatbázisban nem fogunk ismétlődő adatokat tárolni. A lent látható ismétlődő adatok csak a lekérdezés eredményét mutatják be, nem kerülnek eltárolásra az adatbázisban duplán, így végsősoron az adatbázis mérete kisebb lesz, a lekérdezések lefutásának ideje pedig gyorsabb.
Összekapcsolások közötti különbségek: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
Bár a címben és a bevezetőben már volt említve, hogy többféle összekapcsolás is létezik, de kifejtésre csak itt kerülnek.
Az összekapcsolásoknak négy típusát különböztetjük meg:
A főbb különbözőségek az alábbi ábrán látszanak, lentebb pedig következik a kifejtés.
Minden JOIN esetében vegyünk kettő táblát. Legyen egy bal oldali és egy jobb oldali tábla, csak úgy, mint az ábrán a halmaz.
Csak azokat a rekordokat adja vissza, amelyeknek a párja mind a két táblában előfordul.
Visszaadja az összes rekordot a bal oldali táblából, melyhez társítja azokat a jobb oldali rekordokat, amelyekhez talált párt. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
Visszaadja az összes rekordot a jobb oldali táblából, melyhez társítja azokat a bal oldali rekordokat, amelyekhez talált párt. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
Visszaadja az összes rekordot függetlenül attól, hogy van-e párja valamelyik oldalon vagy sem. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
JOIN-ok a gyakorlatban: szintaxisok és példák
Most hogy elméletben átvettük az SQL összekapcsolásokat, itt az ideje, hogy megnézzük gyakorlatban is őket. Hogy ez ne legyen egy végtelenbe nyúló cikk, így ide most elhelyezzük a két táblát, amelyen a JOIN-okat fogjuk alkalmazni, lentebb pedig már csak az SQL kódokat és az eredményeket fogjuk megjeleníteni.
SELECT oszlop(ok) FROM tábla1 INNER JOIN tábla2 ON tábla1.azonosító1=tábla2.azonosító2; Code language: SQL (Structured Query Language) (sql)
A FROM után meg kell adnunk az egyik táblát, majd ezt követi az INNER JOIN és a második tábla, amelyiket az elsőhöz szeretnénk kapcsolni. Ezt követően egy ON kulcsszó után meg kell adnunk az egyik és a másik tábla azon mezőit, amelyek azonos értékeket tartalmaznak, ezen mentén fog történni az összekapcsolás.
SELECT * FROM vasarlok INNER JOIN vasarlasok ON vasarlok.ID=vasarlasok.vasarloID; Code language: SQL (Structured Query Language) (sql)
SELECT oszlop(ok) FROM tábla1 LEFT JOIN tábla2 ON tábla1.azonosító1=tábla2.azonosító2; Code language: SQL (Structured Query Language) (sql)
A FROM után meg kell adnunk az egyik táblát, majd ezt követi a LEFT JOIN és a második tábla, amelyiket az elsőhöz szeretnénk kapcsolni. Ezt követően egy ON kulcsszó után meg kell adnunk az egyik és a másik tábla azon mezőit, amelyek azonos értékeket tartalmaznak, ezen mentén fog történni az összekapcsolás.
SELECT * FROM vasarlok LEFT JOIN vasarlasok ON vasarlok.ID=vasarlasok.vasarloID; Code language: SQL (Structured Query Language) (sql)
SELECT oszlop(ok) FROM tábla1 RIGHT JOIN tábla2 ON tábla1.azonosító1=tábla2.azonosító2; Code language: SQL (Structured Query Language) (sql)
A FROM után meg kell adnunk az egyik táblát, majd ezt követi a RIGHT JOIN és a második tábla, amelyiket az elsőhöz szeretnénk kapcsolni. Ezt követően egy ON kulcsszó után meg kell adnunk az egyik és a másik tábla azon mezőit, amelyek azonos értékeket tartalmaznak, ezen mentén fog történni az összekapcsolás.
SELECT * FROM vasarlasok RIGHT JOIN vasarlok ON vasarlasok.vasarloID=vasarlok.ID; Code language: SQL (Structured Query Language) (sql)
A MySQL-ben a FULL JOIN nem elérhető, de egy LEFT JOIN és egy RIGHT JOIN uniójával emulálható.
Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!
Az adatbázis-kezelés alapjai (SQL alapok)
MySQL adatbázis-műveletek a PHP-ban (adatbázis-kapcsolat létrehozása, bezárása, tábla létrehozása, rekord hozzáadása, törlése, módosítása, lekérdezések írása)
Mi az az adatbázis-kezelés és SQL? - Adatbázis, relációs adatbázis, SQL fogalmak és példák
SQL álnév (alias) használata adatbázis-lekérdezés során
#adatbázis #adatbázis alapok #adatbázis alapok kezdőknek #adatbázis kezelés alapok #adatbázis-kezelés #MySQL #MySQL adatbázis-kezelés #MySQL alapok #MySQL ismeretek #MySQL leckék magyarul #sql #sql alapok #sql alapok kezdőknek #sql ismeretek #sql join magyarul #SQL leckék magyar nyelv #sql lekérdezés #sql lekérdezések #SQL magyarul #sql programozás #sql utasítások #sql záradék #sql záradékok #webfejlesztés #webprogramozás alapjai #webprogramozás alapok
Mi az az adatbázis-kezelés és SQL? – Adatbázis, relációs adatbázis, SQL fogalmak és példák
SQL szerver telepítése XAMPP segítségével: MySQL, phpMyAdmin és Apache
SQL nyelvi elemek csoportosítása: adatdefiníciós, adatlekérdező, adatmanipulációs, adatelérést vezérlő nyelv (DDL, DQL, DML, DCL utasítások)
Megszorítások, megkötések, kényszerfeltételek SQL adatbázis-kezelő rendszerben (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT)
Adatbázis létrehozása SQL-ben: CREATE DATABASE utasítás példákkal
Adatbázis törlése SQL-ben: DROP DATABASE utasítás példákkal
Tábla létrehozása SQL adatbázisban: CREATE TABLE utasítás példákkal
Tábla módosítása SQL adatbázisban: ALTER TABLE utasítás példákkal (ADD, DROP COLUMN, ALTER/MODIFY COLUMN)
Tábla törlése SQL adatbázisban: DROP TABLE és TRUNCATE TABLE utasítások példákkal
Rekord hozzáadása SQL adatbázis táblájához: INSERT INTO utasítás példákkal
Rekord törlése SQL adatbázis táblájából: DELETE utasítás példákkal
Rekord módosítása, frissítése SQL adatbázis táblájában: UPDATE utasítás példákkal
SQL SELECT és FROM záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Az SQL WHERE utasítás és az operátorok bemutatása példákkal (NOT, AND, OR, BETWEEN, LIKE, IN, EXISTS, ANY, ALL)
Az SQL ORDER BY záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Az SQL GROUP BY záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Elsődleges és idegen kulcs használata SQL-ben -PRIMARY KEY, FOREIGN KEY megszorítások bemutatása példákkal
SQL táblák összekapcsolása: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN (Adatbázis-lekérdezések utasításai példákkal)
Az adatbázis-kezelés alapjai (SQL alapok)
Az SQL HAVING záradék használata (Adatbázis-lekérdezések utasításai példákkal)
Az SQL SELECT DISTINCT záradék használata (Adatbázis-lekérdezések utasításai példákkal)
SQL AUTO INCREMENT utasítás (Adatbázismező értékének automatikus növelése)
SQL álnév (alias) használata adatbázis-lekérdezés során
SQL aggregáló, összesítő függvények: MIN, MAX, COUNT, AVG, SUM
SQL LIMIT, SELECT TOP, FETCH FIRST, ROWNUM utasítások bemutatása példákkal
Index létrehozása SQL adatbázis-kezelőben (SQL CREATE és DROP INDEX utasítás)
Dátumok kezelése MySQL adatbázis-kezelőben (MySQL dátum és idő adattípusok)