Az SQL utasítások az egyszerű utasításoktól a hatalmas és összetett többcélú lekérdezésekig változhatnak. Több és összetett SQL-lekérdezés esetén nehéz lehet nyomon követni, hogy melyik táblán, különösen azokon, amelyek hasonló nevet használnak, de eltérő sémákból stb.
Itt lépnek életbe az asztali álnevek. A tábla álnevek az SQL-ben egy kivételes eszköz, amely lehetővé teszi, hogy beállítsuk az adott tábla alternatív neveit, így könnyebben azonosítható a lekérdezésben.
Ebben az oktatóanyagban végigvezetjük mindazt, amit tudnia kell az SQL táblaálnevek kezeléséhez.
SQL Table Alias
Az SQL-ben a táblaálnév egy ideiglenes névre utal, amely egy adott táblához vagy táblaoszlophoz van hozzárendelve az SQL-lekérdezés élettartama alatt.
A táblaalias fő szerepe, hogy lehetővé tegye számunkra, hogy rövidebb és megjegyezhetőbb névvel hivatkozhassunk a táblákra, ami sokat jelenthet több táblát tartalmazó összetett lekérdezésekben.
Az SQL-ben az AS kulcsszó használatával definiálhatunk egy tábla álnevet, ahogy az a következő példaszintaxisban látható:
SELECT oszlop1, oszlop2, ...
FROM tábla_név AS alias neve
WHERE feltétel;
Ebben az esetben az AS kulcsszót használjuk, amelyet egy alternatív név követ, amelyet a céltáblának szeretnénk adni.
Az SQL Table Alias használata
Az SQL-ben a táblaálneveknek számos felhasználási esete van, ezek közül néhány a következőket tartalmazza:
- Olvashatóság – Az álnevek ember által olvashatóbbá teszik az SQL-lekérdezéseket, mivel rövidebb és értelmesebb neveket adnak a tábláknak és oszlopoknak.
- Self-Joins – Amikor egy asztalon önmaga ellen csatlakozik, szükség van egy önálló csatlakozásra, hogy meg tudja különböztetni őket.
- Allekérdezések – A táblaálneveket is használjuk, amikor allekérdezésekkel dolgozunk, hogy megkülönböztessük a fő lekérdezés tábláit a beágyazott lekérdezésben lévő tábláktól.
Példák:
Vizsgáljuk meg az SQL-tábla oszlopának különféle példáit és felhasználásait, amint az oktatóanyag következő szakaszaiban látható.
1. példa: Alapvető használat
Tegyük fel, hogy van egy adatbázisunk, amely két táblát tartalmaz. Az egyik a „munkavállalók”, a másik a „részleg” táblázat. Szeretnénk lekérni az osztályukkal levelezésben lévő alkalmazottak listáját. Használhatjuk a táblázat álnevet a következő példában látható módon:
SELECT e.alkalmazott_neve, d.részleg_nevealkalmazottaktól AS e
CSATLAKOZÁS a részlegekhez AS d ON e.részleg_azonosító = d.részleg_azonosítója;
Ebben az esetben a tábla álneveket használjuk az „e” és „d” álnevek hozzárendelésére az „alkalmazott” és „részlegek” táblákhoz.
Ez a lekérdezést könnyebben olvashatóvá és könnyebben megközelíthetővé teheti még akkor is, ha egy összetett SQL-utasításban van eltemetve.
2. példa: Munka a Self-Join funkcióval
Mint már említettük, a táblaálnevek akkor hasznosak, ha öncsatlakozást kell végrehajtania. Vegyük a minta Sakila adatbázist. Tegyük fel, hogy meg akarjuk találni azokat a színészeket, akik ugyanabban a filmben szerepeltek.
Használhatunk táblázataliast, amint azt a következő példalekérdezés mutatja:
SELECT a1.actor_id AS szereplő1_id, a1.first_name AS színész1_utónév, a1.last_name AS színész1_last_name,a2.actor_id AS színész2_id, a2.first_name AS színész2_utóneve, a2.last_name AS színész2_last_name
A színész AS a1-től
CSATLAKOZZON AZ a2-ként szereplő színészhez ON a1.actor_id a2.actor_id;
Ebben a példában az „a1” és „a2” táblaálneveket használjuk az „actor” táblához, hogy megkülönböztessük ugyanazon tábla két példányát.
MEGJEGYZÉS: Annak biztosítására, hogy ne párosítsunk egy színészt önmagukkal, bevezetjük az ON záradékot és egy feltételt, hogy ellenőrizze ugyanazt a színészazonosítót.
Ennek egy önillesztést kell végrehajtania a táblán, és vissza kell adnia az első 10 egyező sort a következő példakimenetben látható módon:
3. példa: A táblaaliasok használata SQL-allekérdezéssel
Végül nézzünk meg egy példát a táblaálnevek használatára egy SQL-allekérdezésben.
Tegyük fel, hogy meg akarjuk találni azokat a színészeket, akik ugyanabban a filmben egy adott színészként szerepeltek. Használhatunk egy segédlekérdezést a táblázat álnevekkel együtt, hogy ezt a következőképpen hajtsuk végre:
SELECT DISTINCT a.ctor_id, a.first_name, a.last_nameszínésztől MINT a
CSATLAKOZÁS film_actor AS fa1 ON a.actor_id = fa1.actor_id
CSATLAKOZÁS film_actor AS fa2 ON fa1.film_id = fa2.film_id
WHERE a.actor_id <> 1 LIMIT 10;
Ennek vissza kell adnia az összes szereplőt, aki ugyanabban a filmben szerepelt, mint a megadott színész. Észre fogja venni, hogy széles körben használják a táblaálneveket a maximális és hatékony lekérdezéshasználat érdekében.
Következtetés
Ebben az oktatóanyagban mindent megtudtunk, amit az SQL táblaálneveiről tudni lehet. Részletesebb információkért tekintse meg a MySQL oszlopálnevekről szóló oktatóanyagunkat is.