Tai yra vienas iš straipsnių apie „Access“ SQL rinkinių. Šiame straipsnyje aprašoma, kaip rašyti sąlygą FROM, ir pateikiama pavyzdžių, iliustruojančių įvairius sąlygos FROM naudojimo būdus.
Sakinyje SELECT nurodote sąlygoje FROM esančius duomenų šaltinius. Sąlygoje FROM taip pat gali būti JOIN operacija. Operacija JOIN atitinka ir sujungia duomenis iš dviejų duomenų šaltinių, pvz., dviejų lentelių, arba lentelės ir užklausos.
"Access" SQL apžvalgą rasite "Access" SQL: pagrindinės sąvokos, žodynas ir sintaksė.
Šiame straipsnyje
- Duomenų šaltinių nurodymas
- Duomenų šaltinių pavadinimų pakaitų naudojimas
- Susijusių duomenų sujungimas
Duomenų šaltinių nurodymas
Sakinyje SELECT sąlyga FROM nurodo lenteles arba užklausas, kuriose yra duomenų, kuriuos naudos sąlyga SELECT.
Tarkime, norite sužinoti konkretaus kliento telefono numerį. Tarkime, lentelė, kurioje yra laukas su saugomais duomenis, vadinama tblCustomer, sąlyga FROM būtų panaši į šią:
FROM tblCustomer
Laužtiniuose skliaustuose galite įrašyti pavadinimą. Jei pavadinime nėra tarpų arba specialiųjų simbolių (pvz., skyrybos ženklų), laužtiniai skliaustai yra pasirinktiniai. Jei pavadinime yra tarpų arba specialiųjų simbolių, turite naudoti skliaustus.
Patarimas
Pavadinimas, kuriame yra tarpų, yra lengviau skaitomas ir gali sutaupyti laiko kuriant formas ir ataskaitas, tačiau gali tekti įvesti daugiau teksto rašant SQL sakinius. Tai turite apsvarstyti, kai kuriate „Access“ duomenų bazės objektų pavadinimus.
Duomenų šaltinių pavadinimų pakaitų naudojimas
Lentelę sakinyje SELECT galite pavadinti kitu pavadinimu naudodami lentelės pseudonimą sakinyje SELECT. Lentelės pseudonimas yra pavadinimas, kurį užklausoje galite priskirti duomenų šaltiniui, kai išraišką naudojate kaip duomenų šaltinį arba kai norite, kad būtų lengviau įvesti ir perskaityti SQL sakinį. Tai gali būti ypač naudinga, jei duomenų šaltinio pavadinimas yra ilgas arba jį sunku įvesti. Ypač jei yra keli laukai, kuriuose yra tų pačių pavadinimų iš skirtingų lentelių.
Pavyzdžiui, norint rinktis duomenis iš dviejų laukų, kurie abu pavadinti „ID“ ir kurių vienas yra gautas iš lentelės „tblCustomer“, o kitas – iš lentelės „tblOrder“, jūsų sąlyga SELECT gali atrodyti taip:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
Naudojant lentelės pseudonimus sakinyje FROM, gali būti lengviau įvesti užklausą. Jūsų sąlyga FROM su lentelės pseudonimais gali atrodyti taip:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Tada savo sąlygoje SELECT galėsite naudoti šiuos lentelių pseudonimus:
SELECT [C].[ID], [O].[ID]
Pastaba
Jei naudojate lentelės pseudonimus, SQL sakinyje esančią lentelę galite pavadinti naudodami pseudonimą arba visą lentelės pavadinimą.
Susijusių duomenų sujungimas
Jei užklausos rezultate įrašų iš dviejų duomenų šaltinių poras reikia sujungti į vieną įrašą, galite atlikti sujungimą. Sujungimas yra SQL operacija, kuri nurodo, kaip yra susiję du duomenų šaltiniai ir ar duomenis iš vieno šaltinio galima įtraukti, jei nėra atitinkamų duomenų iš kito šaltinio.
Norėdami sujungti informaciją dviejų duomenų šaltinių, galite atlikti sujungimo operaciją bendrame lauke. Kai šiame lauke saugomos reikšmės sutampa, rezultate duomenys iš įrašų yra sujungiami.
Be duomenų sujungimo, sujungimą taip pat galite naudoti norėdami nurodyti, ar įtraukti įrašus iš kurios nors lentelės, jei susijusioje lentelėje nėra atitinkamo įrašo, naudokite sujungimus.
Tarkime, užklausoje norite naudoti duomenis iš dviejų lentelių: tblCustomer ir tblOrder. Abiejose lentelėse yra laukas CustomerID, kuris identifikuoja klientą. Kiekvienas lentelės tblCustomer įrašas gali turėti vieną ar daugiau atitinkančių įrašų iš lentelės tblOrder, o atitinkančias reikšmes galima nustatyti pagal lauko CustomerID reikšmes.
Jei norite sujungti lenteles taip, kad užklausa sujungtų įrašus iš abiejų lentelių, išskyrus įrašus iš bet kurios lentelės, jei nėra atitinkamo įrašo kitoje lentelėje, jūsų sąlyga FROM gali atrodyti taip (eilutės lūžis pridedamas, kad būtų lengviau skaityti):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
Programoje „Access“ sujungimai atsiranda sakinio SELECT sąlygoje FROM. Yra dviejų tipų sujungimai: vidiniai ir išoriniai sujungimai. Tolesniuose skyriuose paaiškinami šių dviejų tipų sujungimai.
Vidiniai sujungimai
Tai dažniausiai pasitaikantis sujungimų tipas. Paleidus užklausą su vidiniu sujungimu, į užklausos rezultatus įtraukiami tik įrašai, kurių bendra reikšmė yra abiejose sujungtose lentelėse.
Vidinio sujungimo sintaksė yra tokia (eilutės lūžis pridedamas, kad būtų lengviau skaityti):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
Šioje lentelėje aprašomos įvairios operacijos INNER JOIN dalys.
| Dalis | Aprašymas |
|---|---|
| lentelė1, lentelė2 | Lentelių, kurių įrašai suderinti, pavadinimai. |
| laukas1, laukas2 | Sujungiamų laukų pavadinimai. Jei jie nėra skaičius, laukai turi būti to paties duomenų tipo ir turėti vienodos rūšies duomenis, bet jų pavadinimas negali būti toks pat. |
| lyginimo_operatorius | Bet kuris santykinis lyginimo operatorius: "=", "<," "><=", ">=" arba "<>." |
Išoriniai sujungimai
Išorinis sujungimas yra panašus į vidinį sujungimą, nes jie nurodo užklausai, kaip sujungti informaciją iš dviejų šaltinių. Jie skiriasi, nes išorinis sujungimas taip pat nurodo, ar norite įtraukti duomenis ten, kur nėra bendros reikšmės. Išoriniai sujungimai yra kryptiniai: galite nurodyti, ar įtraukti visus įrašus iš pirmojo duomenų šaltinio, nurodyto sujungime (vadinamame kairiu sujungimu), ar įtraukti visus įrašus iš antrojo duomenų šaltinio, nurodyto sujungime (vadinamame dešiniu sujungimu).
Išorinio sujungimo sintaksė yra tokia:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON lentelė1.laukas1lyginimo_operatorius lentelė2.laukas2
Šioje lentelėje aprašomos įvairios operacijų LEFT JOIN ir RIGHT JOIN dalys.
| Dalis | Aprašymas |
|---|---|
| lentelė1, lentelė2 | Lentelių, kurių įrašai suderinti, pavadinimai. |
| laukas1, laukas2 | Sujungiamų laukų pavadinimai. Laukai turi būti to paties tipo ir turėti vienodos rūšies duomenis, bet jie neprivalo turėti to paties pavadinimo. |
| lyginimo_operatorius | Bet kuris santykinis lyginimo operatorius: "=", "<," "><=", ">=" arba "<>." |
Daugiau informacijos apie sujungimus ieškokite straipsnyje Lentelių ir užklausų sujungimas.