SQL | Doložka POUŽÍVANIE
Ak má viacero stĺpcov rovnaké názvy, ale typy údajov sa nezhodujú, klauzulu NATURAL JOIN možno upraviť pomocou POUŽITÍM klauzula na určenie stĺpcov, ktoré by sa mali použiť pre EQUIJOIN.
- Klauzula USING sa používa na priradenie iba jedného stĺpca, ak sa zhoduje viac stĺpcov.
- Klauzula NATURAL JOIN a USING sa navzájom vylučujú.
- V odkazovaných stĺpcoch by nemal mať kvalifikátor (názov tabuľky alebo alias).
- NATURAL JOIN používa všetky stĺpce so zodpovedajúcimi názvami a dátovými typmi na spojenie tabuliek. Klauzula USING sa môže použiť na špecifikovanie iba tých stĺpcov, ktoré by sa mali použiť pre EQUIJOIN.
PRÍKLADY:
Nižšie uvedené príkazy použijeme na nasledujúce základné tabuľky:
Tabuľka zamestnancov
Tabuľka oddelenia
DOTAZ 1: Napíšte SQL dotaz na nájdenie pracovného miesta zamestnancov. Uveďte aj ich príslušné zamestnanecké_id a priezvisko?
Input : SELECT e.EMPLOYEE_ID, e.LAST_NAME, d.LOCATION_ID FROM Employees e JOIN Departments d USING(DEPARTMENT_ID); Output :
Vysvetlenie: Zobrazený príklad spája stĺpec DEPARTMENT_ID v stĺpcoch EMPLOYEES a DEPARTMENTS
tabuľky, a teda zobrazuje miesto, kde zamestnanec pracuje.
Nižšie uvedené príkazy použijeme na nasledujúce základné tabuľky:
Tabuľka krajín
Tabuľka umiestnenia
DOTAZ 2: Napíšte SQL dotaz, aby ste našli location_id, street_address, postal_code a ich príslušný názov krajiny?
Input : SELECT l.location_id, l.street_address, l.postal_code, c.country_name FROM locations l JOIN countries c USING(country_id); Output :
Vysvetlenie: Zobrazený príklad spája stĺpec COUNTRY_ID v LOCATIONS a COUNTRIES
tabuľky, a tým zobrazuje požadované detaily.
POZNÁMKA: Keď v príkaze spojenia použijeme klauzulu USING, stĺpec spojenia nie je kvalifikovaný s aliasom tabuľky. Nevytvárajte alias, aj keď sa rovnaký stĺpec používa inde v príkaze SQL:
Príklad:
Input: SELECT l.location_id, l.street_address, l.postal_code, c.country_name FROM locations l JOIN countries c USING(country_id) WHERE c.country_id'IT'; Output:
Vysvetlenie: Keďže stĺpec v klauzule USING je opäť použitý v klauzule WHERE, vyhodí používateľovi chybu.