SQL | KÄYTTÖlause
Jos useilla sarakkeilla on samat nimet, mutta tietotyypit eivät täsmää, NATURAL JOIN -lausetta voidaan muokata KÄYTTÖ lauseke, joka määrittää sarakkeet, joita tulee käyttää EQUIJOIN:issa.
- KÄYTTÖ-lausetta käytetään vastaamaan vain yhtä saraketta, kun useampi kuin yksi sarake vastaa.
- NATURAL JOIN ja KÄYTTÖlauseke ovat toisensa poissulkevia.
- Sillä ei saa olla tarkennetta (taulukon nimi tai alias) viitatuissa sarakkeissa.
- NATURAL JOIN käyttää kaikkia sarakkeita, joiden nimet ja tietotyypit vastaavat taulukoiden yhdistämiseen. USING-lausetta voidaan käyttää määrittämään vain ne sarakkeet, joita tulee käyttää EQUIJOINissa.
ESIMERKKEJÄ:
Käytämme alla mainittuja komentoja seuraavissa perustaulukoissa:
Työntekijätaulukko
Osastotaulukko
KYSYMYS 1: Kirjoita SQL-kysely löytääksesi työntekijöiden työpaikan. Anna myös heidän työntekijän_tunnus ja sukunimi?
Input : SELECT e.EMPLOYEE_ID, e.LAST_NAME, d.LOCATION_ID FROM Employees e JOIN Departments d USING(DEPARTMENT_ID); Output :
Selitys: Näytetty esimerkki liittyy TYÖNTEKIJÄT ja OSASTO-sarakkeeseen DEPARTMENT_ID
taulukoita ja näyttää siten paikan, jossa työntekijä työskentelee.
Käytämme alla mainittuja komentoja seuraavissa perustaulukoissa:
Maataulukko
Sijaintitaulukko
KYSYMYS 2: Kirjoita SQL-kysely löytääksesi sijainnin_id, street_address, postal_code ja vastaavan maan nimen?
Input : SELECT l.location_id, l.street_address, l.postal_code, c.country_name FROM locations l JOIN countries c USING(country_id); Output :
Selitys: Esitetty esimerkki liittyy COUNTRY_ID-sarakkeeseen kohteissa LOCATIONS ja COUNTRIES
taulukoita ja näyttää siten tarvittavat tiedot.
HUOMAUTUS: Kun käytämme liitoskäskyssä USING-lausetta, liitossaraketta ei ole määritelty taulukon Alias kanssa. Älä käytä aliasta, vaikka samaa saraketta käytettäisiin muualla SQL-käskyssä:
Esimerkki:
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:
Selitys: Koska USING-lauseen saraketta käytetään uudelleen WHERE-lauseessa, se aiheuttaa virheen käyttäjälle.