Įvadas į „Access SQL“

Svarbu :  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

Jei norite gauti duomenis iš duomenų bazės, galima pateikti duomenis iš Structured Query Language "arba" SQL. SQL yra kompiuterio kalba, kuri yra labai panaši į anglų kalba, suprasti duomenų bazės programos. Žinant SQL yra svarbus, nes kiekvieną užklausą programoje "Microsoft Access" naudoja SQL. Suprasti, kaip veikia SQL gali padėti sukurti geriau užklausas, ir gali padėti jums išspręsti užklausą, kai ji nėra grįžta norimų rezultatų.

Pastaba : Negalite redaguoti SQL žiniatinklio užklausai.

Šiame straipsnyje

Kas yra SQL?

Pagrindinės SQL sąlygų sąrašas: SELECT, FROM ir WHERE

Rūšiuoti rezultatus: tvarka pagal

Darbas su duomenų: Grupuoti pagal ir sąlyga HAVING

Derinant užklausos rezultatai: Sąjungos

Daugiau informacijos apie SELECT sąlyga

Daugiau informacijos apie sąlygą FROM

Daugiau informacijos apie sąlygą WHERE

Kas yra SQL?

SQL yra kompiuterio kalba, kaip dirbti su rinkiniais faktų ir jų ryšiai. Reliacinės duomenų bazės programų, pvz., prieigą, naudokite SQL dirbti su duomenimis. Daugelyje kompiuterių kalbų, pvz., SQL yra tarptautinio standarto, kuris atpažįstamas, pvz., ISO ir ANSI standartų institucijų.

Galite naudoti SQL aprašyti duomenis, kurie gali padėti atsakyti į rinkinius. Kai naudojate SQL, turite naudoti teisingos sintaksės. Sintaksė yra taisyklių, kuriais tinkamai derinami elementus kita kalba. SQL sintaksė pagal anglų kalbos sintaksė ir naudoja daug tie patys elementai kaip Visual Basic for Applications (VBA) sintaksė.

Pavyzdžiui, paprastas SQL sakinys, gaunantis kontaktų, kurių vardas yra Mary, pavardžių sąrašą, galėtų būti panašus į šį:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Pastaba : SQL naudojamas ne tik manipuliuoti duomenis, bet ir kurti ir keisti dizainą, duomenų bazės objektus, pavyzdžiui, lenteles. SQL, kuris naudojamas kuriant ir keičiant duomenų bazės objektų dalis vadinama duomenų apibrėžimo kalbos (DDL). Šioje temoje DDL netaikoma. Daugiau informacijos ieškokite straipsnyje kurti arba modifikuoti lenteles arba indeksai naudojant duomenų apibrėžimo užklausą.

Sakiniai SELECT

Jei norite aprašyti duomenų rinkinį naudodamiesi SQL, rašote sakinį SELECT. Sakinyje SELECT yra visas duomenų rinkinio, kurį norite gauti iš duomenų bazės, aprašymas. Jis apima šiuos elementus:

  • Kokiose lentelėse yra duomenys.

  • Kaip susiejami duomenys iš skirtingų šaltinių.

  • Kurie laukai ar skaičiavimai generuoja duomenis.

  • Duomenų, kuriuos turi atitikti būtų kriterijus įtraukti.

  • Ar reikia rūšiuoti rezultatus ir kaip tai daryti.

SQL sąlygos

Kaip ir paprastuose sakiniuose, SQL sakinyje yra sąlygų. Kiekviena sąlyga SQL sakinyje atlieka tam tikrą funkciją. Tam tikrų sąlygų reikia ir sakinyje SELECT. Tolesnėje lentelėje išvardytos dažniausios SQL sąlygos.

SQL sąlyga

Kaip ji veikia

Būtina

SELECT

Išvardija laukus, kuriuose yra dominančių duomenų.

Taip

FROM

Išvardija lenteles, kuriose yra laukai, nurodyti sąlygoje SELECT.

Taip

WHERE

Nurodo lauko kriterijus, kuriuos kiekvienas įrašas turi atitikti, kad būtų įtrauktas į rezultatus.

Ne

ORDER BY

Nurodo, kaip rūšiuoti rezultatus.

Ne

GROUP BY

SQL sakinyje, kuriame yra sudėtinių funkcijų, išvardija laukus, kurie nėra apibendrinti sąlygoje SELECT.

Tik jei yra tokių laukų

HAVING

SQL sakinyje, kuriame yra sudėtinių funkcijų, nurodo sąlygas, taikomas laukams, apibendrintiems sakinyje SELECT.

Ne

SQL terminai

Kiekvieną SQL sąlygą sudaro terminai – juos galima lyginti su kalbos dalimis. Tolesnėje lentelėje išvardyti SQL terminų tipai.

SQL terminas

Palyginama kalbos dalis

Apibrėžimas

Pavyzdys

identifikatorius

daiktavardis

Pavadinimas, jūsų naudojamas duomenų bazės objektui identifikuoti, pvz., lauko pavadinimas.

Klientai.[Telefono numeris]

operatorius

veiksmažodis arba prieveiksmis

Raktinis žodis, vaizduojantis veiksmą arba keičiantis veiksmą.

KAIP

konstanta

daiktavardis

Nekintanti vertė, pvz., skaičius arba NULL.

42

išraiška

būdvardis

Identifikatorių, operatorių, konstantų ir funkcijų derinys, kuris apskaičiuoja vieną vertę.

>= Produktai.[Vieneto kaina]

Puslapio viršus

Pagrindinės SQL sąlygos: SELECT, FROM ir WHERE

SQL sakinys įgyja bendrą formą:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Pastabos : 

  • „Access“ nepaiso eilutės lūžių SQL sakinyje. Bet vertėtų naudoti eilutę kiekvienai sąlygai, kad SQL sakiniai būtų lengviau suprantami jums patiems ir kitiems.

  • Kiekvienas SELECT sakinys baigiasi kabliataškiu (;). Kabliataškis gali būti paskutinės sąlygos pabaigoje arba vienas eilutėje, SQL sakinio pabaigoje.

Pavyzdys programoje „Access“

Toliau parodyta, kaip paprastos pasirinkimo užklausos SQL sakinys galėtų atrodyti sistemoje „Access“:

SQL objekto skirtukas su sakiniu SELECT

1. Sąlyga SELECT

2. Sąlyga FROM

3. Sąlyga WHERE

Šiame pavyzdyje SQL sakinys yra toks „Pasirinkti duomenis, saugomus laukuose, pavadintuose „El. pašto adresas“ ir „Įmonė“, iš lentelės, pavadintos „Kontaktai“, ypač įrašus, kuriuose lauko „Miestas“ reikšmė yra „Sietlas““.

Skaitykime šį pavyzdį po vieną sąlygą ir pažvelkime, kaip veikia SQL sintaksė.

Sąlyga SELECT

SELECT [E-mail Address], Company

Tai yra sąlyga SELECT. Ją sudaro operatorius (SELECT), po kurio yra du identifikatoriai ([El. pašto adresas] ir Įmonė).

Jei identifikatoriuje yra tarpų arba specialių simbolių (pvz., „El. pašto adresas“), jį reikia rašyti laužtiniuose skliaustuose.

Sąlyga SELECT neturi nurodyti, kokioje lentelėje duomenys yra, ji negali nurodyti jokių sąlygų, kurias turi atitikti duomenys, kad būtų įtraukti.

Sąlyga SELECT sakinyje SELECT visada būna prieš sąlygą FROM.

Sąlyga FROM

FROM Contacts

Tai yra sąlyga FROM. Ją sudaro operatorius (FROM), po kurio yra identifikatorius (Kontaktai).

Sąlyga FROM nevardija laukų, kuriuos reikia pasirinkti.

Sąlyga WHERE

WHERE City="Seattle"

Tai yra sąlyga WHERE. Ją sudaro operatorius (WHERE), po kurio yra išraiška (Miestas="Sietlas").

Pastaba : Kitaip nei sąlygose SELECT ir FROM, sąlyga WHERE nėra būtinas sakinio SELECT elementas.

Galite atlikti daugelį veiksmų, SQL leidžia jums atlikti naudojant SELECT, FROM ir kur. Daugiau informacijos apie tai, kaip galite naudoti šias sąlygas pateikta šiuose skyriuose šio straipsnio pabaigoje:

Daugiau informacijos apie SELECT sąlyga

Daugiau informacijos apie sąlygą FROM

Daugiau informacijos apie sąlygą WHERE

Rezultatų rūšiavimas: ORDER BY

Kaip ir programa „Microsoft Office Excel“, „Access“ leidžia rūšiuoti užklausos rezultatus duomenų lape. Užklausoje taip pat galite nurodyti, kaip norite rūšiuoti rezultatus, kai užklausa vykdoma, naudodami sąlygą ORDER BY. Jei naudojate sąlygą ORDER BY, tai yra paskutinė sąlyga SQL sakinyje.

Sąlygoje ORDER BY yra sąrašas laukų, kuriuos norite naudoti rūšiavimui, ta pačia tvarka, kuria norite taikyti rūšiavimo operacijas.

Pavyzdžiui, tarkime, kad norite rūšiuoti rezultatus visų pirma pagal lauko „Įmonė“ reikšmę mažėjimo tvarka, o tada  – jei yra įrašų su ta pačia reikšme „Įmonė“ – rūšiuoti pagal reikšmes lauke „El. pašto adresas“ didėjimo tvarka. Jūsų sąlyga ORDER BY atrodys maždaug taip:

ORDER BY Company DESC, [E-mail Address]

Pastaba : Pagal numatytąjį nustatymą, „Access“ rūšiuoja reikšmes didėjimo tvarka (nuo A iki Z, nuo mažiausios iki didžiausios). Jei norite reikšmes rūšiuoti mažėjimo tvarka, vartokite raktinį žodį „DESC“.

Daugiau informacijos apie rūšiuoti pagal sąlygą, rasite temoje Rūšiuoti pagal sąlygą.

Puslapio viršus

Darbas su apibendrintais duomenimis: GROUP BY ir HAVING

Kartais gali prireikti dirbti su apibendrinti duomenis, pvz., pardavimo sumos per mėnesį, arba dažniausiai brangią elementų sąrašą. Norėdami tai padaryti, galite taikyti yra agregavimo funkcija lauko sąlygoje SELECT. Pavyzdžiui, jei norite peržiūrėti kiekvienos įmonės el. pašto adresų skaičių užklausą, jūsų sąlygos Select gali būti panašūs šiuos veiksmus:

SELECT COUNT([E-mail Address]), Company

Agregavimo funkcijos, kurias galite naudoti, priklauso nuo duomenų tipą, kurioje yra laukas arba reiškinys, kurį norite naudoti. Daugiau informacijos apie galimos agregavimo funkcijos, ieškokite straipsnyje SQL agregavimo funkcijos.

Laukų, nenaudojamų sudėtinėje funkcijoje, nurodymas: sąlyga GROUP BY

Naudojant sudėtines funkcijas, paprastai reikia sukurti ir sąlygą GROUP BY. Sąlygoje GROUP BY išvardijami visi laukai, kuriems netaikote sudėtinės funkcijos. Jei sudėtines funkcijas taikote visiems užklausos laukams, kurti sąlygos GROUP BY nereikia.

Sąlyga GROUP BY būna iš karto po sąlygos WHERE arba po sąlygos FROM, jei sąlygos WHERE nėra. Sąlygoje GROUP BY laukai vardijami taip, kaip jie nurodyti sąlygoje SELECT.

Pavyzdžiui, tęsiant pirmesnį pavyzdį, jei jūsų sąlyga SELECT taiko sudėtinę funkciją reikšmei [El. pašto adresas], bet ne reikšmei „Įmonė“, jūsų sąlyga GROUP BY atrodys maždaug taip:

GROUP BY Company

Daugiau informacijos apie sąlyga GROUP BY, rasite temoje sąlyga GROUP BY.

Apriboti agreguotas reikšmes naudodami grupės kriterijus: su Sąlyga HAVING

Jei norite riboti savo rezultatus naudodamiesi kriterijais, bet laukas, kuriam norite taikyti kriterijus, yra naudojamas sudėtinėje funkcijoje, negalite naudoti sąlygos WHERE. Vietoje jos naudokite sąlygą HAVING. Sąlyga HAVING veikia kaip ir sąlyga WHERE, bet ji naudojama sudėtiniams duomenims.

Pavyzdžiui, jūs naudojate funkciją AVG (kuri skaičiuoja vidutinę vertę) su pirmuoju lauku savo sąlygoje SELECT:

SELECT COUNT([E-mail Address]), Company

Jei norite, kad užklausos rezultatai būtų ribojami remiantis tos funkcijos COUNT verte, negalite naudoti kriterijaus tam laukui sąlygoje WHERE. Vietoje to įveskite kriterijų sąlygoje HAVING. Pavyzdžiui, jei norite, kad užklausa pateiktų eilutes tik jei yra daugiau nei vienas su įmone susietas el. pašto adresas, sąlyga HAVING gali atrodyti maždaug taip:

HAVING COUNT([E-mail Address])>1

Pastaba : Užklausa gali turėti sąlygą WHERE ir sąlygą HAVING – kriterijai laukams, nenaudojamiems sudėtinėje funkcijoje, patenka į sąlygą WHERE, o kriterijai laukams, naudojamiems su sudėtinėmis funkcijomis, patenka į sąlygą HAVING.

Daugiau informacijos apie HAVING sąlygos, rasite temoje HAVING sąlyga.

Puslapio viršus

Užklausos rezultatų jungimas: UNION

Norėdami peržiūrėti visus duomenis, bendrai pateiktus kelių panašių pasirinkimo užklausų, kaip sujungtą rinkinį, naudojate operatorių UNION.

Operatorius UNION leidžia sujungti du sakinius SELECT į vieną. Sujungiamuose sakiniuose SELECT turi būti vienodas išvesties laukų skaičius, turi sutapti jų tvarka, o jų duomenys turi būti vienodi arba suderinami. Kai vykdote užklausą, duomenys iš kiekvieno atitinkamų laukų rinkinio sujungiami į vieną išvesties lauką, kad užklausos išvestyje būtų toks pat laukų skaičius kaip kiekviename iš pasirinkimo sakinių.

Pastaba : Sujungimo užklausose skaičių ir teksto duomenų tipai yra suderinami.

Naudodami operatorių UNION, taip pat galite nurodyti, ar užklausos rezultatai turi apimti pasikartojančias eilutes (jei yra), naudodamiesi raktiniu žodžiu ALL.

Bazinė SQL sintaksė užklausai „union“, sujungiančiai du sakinius SELECT, yra tokia:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Pavyzdžiui, turite lentelę, pavadintą „Produktai“, ir kitą lentelę, pavadintą „Paslaugos“. Abiejose lentelėse yra laukų, kuriuose nurodomas produkto ar paslaugos pavadinimas, kaina, produkto ar produkto garantija ir ar produktas arba paslauga siūlomi išskirtinai. Lentelėje „Produktai“ nurodyta produkto garantija, o lentelėje „Paslaugos“ – paslaugos garantija, bet pagrindinė informacija yra tokia pati (ar konkretus produktas arba paslauga apima kokybės įsipareigojimą). Naudodami užklausą „union“, panašią į pateiktąją toliau, galite sujungti keturis laukus iš dviejų lentelių:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Daugiau informacijos apie tai, kaip sujungti SELECT sakiniai naudojant sujungimo operatorius, ieškokite straipsnyje sujungti kelių išrinkimo užklausų naudojant "union" užklausos rezultatus.

Puslapio viršus

Daugiau apie sąlygą SELECT

Sakinyje SELECT sąlygos Select išvardija laukus, kuriuose yra duomenų norite naudoti.

Identifikatorius rašykite tarp laužtinių skliaustų

Laužtiniuose skliaustuose galite rašyti lauko pavadinimą sąlygoje SELECT. Jei pavadinime nėra tarpų ar specialių simbolių (pvz., skyrybos ženklų), laužtiniai skliaustai nebūtini. Jei pavadinime yra tarpų ar specialių simbolių, naudoti skliaustus būtina.

Patarimas : Pavadinime yra tarpų, yra lengviau skaityti ir galite greičiau kurti formas ir ataskaitas, bet gali baigtis jums įveskite daugiau rašydami SQL sakinių. Tai turėtumėte atsižvelgti, kai galite pavadinti objektus duomenų bazėje.

Jei jūsų SQL sakinyje yra du ar daugiau laukų tuo pačiu pavadinimu, sąlygoje SELECT į lauko pavadinimą reikia įtraukti kiekvieno lauko duomenų šaltinio pavadinimą. Naudojamas tas pats duomenų šaltinio pavadinimas, kurį naudojate sąlygoje FROM.

Visų laukų pasirinkimas

Jei norite įtraukti visus laukus iš duomenų šaltinio, galite arba atskirai išvardyti visus laukus sąlygoje SELECT, arba naudoti pakaitos simbolį žvaigždutę (*). Kai naudojate žvaigždute, vykdant užklausą programa „Access“ nustato, kokie laukai yra duomenų šaltinyje, ir įtraukia į užklausą juos visus. Tai padeda užtikrinti, kad užklausa būtų atnaujinama, kai duomenų šaltinyje pridedama naujų laukų.

SQL sakinyje žvaigždutę galite naudoti su vienu ar keliais duomenų šaltiniais. Jei naudojate žvaigždutę, ir yra keli duomenų šaltiniai, su žvaigždute turite nurodyti ir duomenų šaltinio pavadinimą, kad „Access“ galėtų nustatyti, iš kurio duomenų šaltinio reikia įtraukti visus laukus.

Pavyzdžiui, norite pasirinkti visus laukus iš lentelės „Užsakymai“, bet tik el. pašto adresus iš lentelės „Kontaktai“. Jūsų sąlyga SELECT atrodys maždaug taip:

SELECT Orders.*, Contacts.[E-mail Address]

Pastaba : Naudodami žvaigždutę būkite atidūs. Jei vėliau prie duomenų šaltinio pridedama naujų laukų, kurių naudoti neplanavote, užklausos rezultatai gali būti kitokie nei tikėjotės.

Skirtingų reikšmių pasirinkimas

Jei žinote, kad jūsų sakinys pasirinks perteklinius duomenis, ir norite matyti tik skirtingas reikšmes, savo sąlygoje SELECT galite naudoti raktinį žodį DISTINCT. Pavyzdžiui, tarkime, kad kiekvienas iš jūsų klientų atstovauja keliems skirtingiems interesams, ir kai kurie iš jų naudoja tą patį telefono numerį. Norėdami užtikrinti, kad kiekvieną telefono numerį matytumėte tik kartą, jūsų sąlyga SELECT atrodys taip:

SELECT DISTINCT [txtCustomerPhone]

Naudokite pakaitinius laukų ar išraiškų pavadinimus: raktinį žodį AS

Galite pakeisti žymą, rodomą bet kuriam laukui duomenų lapo rodinyje, naudodami raktinį žodį AS ir lauko pseudonimą savo sąlygoje SELECT. Lauko pseudonimas – tai pavadinimas, kurį priskiriate laukui užklausoje, kad būtų lengviau skaityti rezultatus. Pavyzdžiui, jei norite rinktis duomenis iš lauko, pavadinto „txtCustPhone“, ir šiame lauke yra telefono numeriai, galite pagerinti rezultatų suprantamumą naudodami lauko pseudonimą sakinyje SELECT tokiu būdu:

SELECT [txtCustPhone] AS [Customer Phone]

Pastaba : Privalote naudoti lauko pseudonimą, kai naudojate išraišką sąlygoje SELECT.

Pasirinkimas naudojant išraišką

Kartais, vertėtų atkreipti dėmesį į skaičiavimai remiantis duomenimis, arba gauti tik dalį lauko duomenų. Pavyzdžiui, Tarkime, kad norite metų grąža, kad klientai gimė, duomenų lauke Gimimo_data jūsų duomenų bazėje. Jūsų sąlygos Select gali panašus į šį:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Ši išraiška sudaro į DatePart ir dviejų argumentų, "yyyy" (konstantos), ir [BirthDate] (identifikatorių).

Kaip lauką galite naudoti bet kokią galiojančią išraišką, jei išraiška pateikia vieną reikšmę, kai jai nurodoma viena įvesties reikšmė.

Puslapio viršus

Daugiau apie sąlygą FROM

Sakinyje SELECT sąlyga FROM nurodo lenteles ar užklausas, kuriose yra duomenys, kuriuos naudos sąlyga SELECT.

Tarkime, kad norite sužinoti konkretaus kliento telefono numerį. Jei lentelė, kurioje yra laukas su šiais duomenimis, vadinasi „tblCustomer“, sąlyga FROM atrodys maždaug taip:

FROM tblCustomer

Identifikatorius rašykite tarp laužtinių skliaustų

Tarp laužtinių skliaustų galite rašyti pavadinimą. Jei pavadinime nėra tarpų ar specialių simbolių (pvz., skyrybos ženklų), laužtiniai skliaustai nebūtini. Jei pavadinime yra tarpų ar specialių simbolių, naudoti skliaustus būtina.

Patarimas : Pavadinime yra tarpų, yra lengviau skaityti ir galite greičiau kurti formas ir ataskaitas, bet gali baigtis jums įveskite daugiau rašydami SQL sakinių. Tai turėtumėte atsižvelgti, kai galite pavadinti objektus duomenų bazėje.

Pakaitinių duomenų šaltinių pavadinimų naudojimas

Galite naudoti kitokį pavadinimą duomenų šaltiniui nurodyti sakinyje SELECT naudodami lentelės pseudonimą savo sąlygoje FROM. Lentelės pseudonimas – tai pavadinimas, kurį suteikiate duomenų šaltiniui užklausoje, kai naudojate išraišką kaip duomenų šaltinį, arba kad SQL sakinį būtų lengviau užrašyti ir perskaityti. Tai gali būti ypač naudinga, jei duomenų šaltinio pavadinimas yra ilgas ar sunkiai užrašomas, ypač jei yra keli taip pat pavadinti laukai iš skirtingų lentelių.

Pavyzdžiui, jei norite 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 atrodys maždaug taip:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Jei sąlygoje FROM naudosite lentelių pseudonimus, bus lengviau ją užrašyti. Sąlyga FROM su lentelių pseudonimais atrodys maždaug taip:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Tada galėsite naudoti šiuos lentelių pseudonimus savo sąlygoje SELECT:

SELECT [C].[ID], [O].[ID]

Pastaba : Naudodami lentelių pseudonimus, nurodyti duomenų šaltinius savo SQL sakinyje galite naudodami duomenų šaltinio pseudonimą arba visą pavadinimą.

Susijusių duomenų sujungimas

Jei reikia būdo sujungti įrašų iš dviejų duomenų šaltinių poras į pavienius įrašus užklausos rezultate, galite atlikti sujungimą. Sujungimas yra SQL operacija, nurodanti, kaip du duomenų šaltiniai yra susiję, ir ar duomenis iš vieno šaltinio reikia įtraukti, jei nėra atitinkamų duomenų iš kito šaltinio.

Norėdami sujungti informaciją iš dviejų duomenų šaltinių, sujungimo operaciją atliekate lauke, kuris jiems yra bendras. Jei šiame lauke esančios reikšmės sutampa, rezultatuose duomenys iš įrašų yra sujungiami.

Be duomenų derinimo, sujungimas dar naudojamas nurodant, ar reikia įtraukti įrašus iš bet kurios lentelės, jei susijusiose lentelėje nėra atitinkamo įrašo.

Pavyzdžiui, Tarkime, kad norite naudoti duomenis iš dviejų lentelių užklausoje: tblCustomer ir tblOrder. Dvi lentelės ir turi lauko CustomerID, kuris nurodo į klientų. Kiekvieno įrašo tblCustomer lentelėje gali būti viena ar daugiau atitinkančių įrašų tblOrder lentelėje, ir atitinkamas reikšmes galima nustatyti lauką CustomerID reikšmes.

Jei norite sujungti lenteles, kad užklausa derintų įrašus iš lentelių išskirdama bet kurios lentelės įrašus, jei nėra atitinkamo įrašo kitoje lentelėje, jūsų sąlyga FROM gali atrodyti maždaug taip (eilučių lūžiai pridėti, kad būtų lengviau skaityti):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

Programoje „Microsoft Office Access“ sujungimai atliekami sakinio SELECT sąlygoje FROM. Sujungimai būna dviejų tipų: vidiniai ir išoriniai. Šie du sujungimų tipai paaiškinti tolesniuose skyriuose.

Vidiniai sujungimai

Vidiniai sujungimai yra dažniausias sujungimo tipas. Atliekant užklausą su vidiniu sujungimu, į užklausos rezultatus įtraukiami tik įrašai, turintys bendrą reikšmę abiejose sujungtose lentelėse.

Vidinio sujungimo sintaksė tokia (eilutės lūžis pridėtas, kad būtų lengviau skaityti):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Tolesnėje lentelėje aprašytos skirtingos operacijos INNER JOIN dalys.

Dalis

Aprašas

Lentelė1, Lentelė2

Lentelių, kurių įrašai sujungiami, pavadinimai.

Laukas1, Laukas2

Sujungiamų laukų pavadinimai. Jei jie nėra skaičius, laukai turi būti to paties duomenų tipas ir turėti vienodos rūšies duomenis, bet jie negali turėti to paties pavadinimo.

lyginimo_operatorius

Bet kuris santykinis lyginimo operatorius: „=“, „<“, „>“, „<=“, „>=“ arba „<>“.

Išoriniai sujungimai

Išoriniai sujungimai panašūs į vidinius, nes jais užklausai nurodoma, kaip sujungti informaciją iš dviejų šaltinių. Jie skiriasi, nes jais taip pat nurodoma, ar įtraukti duomenis, jei nėra bendros reikšmės. Išoriniai sujungimai yra kryptiniai: galite nurodyti, ar reikia įtraukti visus įrašus iš pirmojo sujungime nurodyto duomenų šaltinio (tai vadinama kairiuoju sujungimu) arba ar įtraukti visus įrašus iš antrojo duomenų šaltinio sujungime (tai vadinama dešiniuoju sujungimu).

Išorinio sujungimo sintaksė tokia:

FROM Lentelė1 [kairėje | DEŠINIAJAME] JOIN Lentelė2
ON Lentelė1.laukas1lyginimo_operatorius Lentelė2.Laukas2

Tolesnėje lentelėje aprašytos įvairios operacijų LEFT JOIN ir RIGHT JOIN dalys.

Dalis

Aprašas

Lentelė1, Lentelė2

Lentelių, kurių įrašai sujungiami, pavadinimai.

Laukas1, Laukas2

Laukus, kurie prisijungė pavadinimai. Laukai turi būti vienu duomenų tipas ir yra to paties tipo duomenų, tačiau jie neturi turi tą patį pavadinimą.

lyginimo_operatorius

Bet kuris santykinis lyginimo operatorius: „=“, „<“, „>“, „<=“, „>=“ arba „<>“.

Daugiau informacijos apie sujungimų naudojimą ieškokite straipsnyje lentelių ir užklausų sujungimas.

Puslapio viršus

Daugiau apie sąlygą WHERE

Jei norite naudoti duomenis apriboti įrašus, kurie pateikiami užklausoje, naudojate užklausos kriterijai Sąlygoje WHERE, sakinys SELECT. Užklausos kriterijų yra panašus į formulę, ji yra eilutė, gali būti sudarytas iš lauko nuorodos, operatoriai ir konstantos. Užklausos kriterijų yra išraiškatipo.

Tolesnėje lentelėje pateikiami kriterijų pavyzdžiai ir aiškinama, kaip jie veikia.

Kriterijai

Aprašas

>25 ir <50

Šis kriterijus taikomas laukui „Skaičius“, pvz., „Kaina“ arba „UnitsInStock“. Jis apima tik įrašus, kurių lauke vertė yra didesnė nei 25 ir mažesnė nei 50.

DateDiff („yyyy“, [BirthDate], Data()) > 30

Šis kriterijus taikomas Datos/Laiko laukui, pvz., „BirthDate“. Į užklausos rezultatus įtraukiami tik įrašai, kuriuose metų tarp asmens gimimo datos ir šiandienos datos skaičius yra didesnis nei 30.

„Is Null“

Šis kriterijus gali būti taikomas bet kokios rūšies laukui, pateikiant įrašus, kurių lauko vertė yra nulis.

Kaip rodo pirmiau pateikta lentelė, kriterijai gali būti labai skirtingi ir priklauso nuo lauko, kuriam kriterijai taikomi, duomenų tipo ir nuo jūsų konkrečių reikalavimų. Kai kurie kriterijai paprasti, juose naudojami pagrindiniai operatoriai ir konstantos. Kiti yra sudėtingi, juose naudojamos funkcijos ir specialūs operatoriai, jie apima laukų nuorodas.

Svarbu : Jei lauką naudojant agregavimo funkciją, negalite nurodyti kriterijų lauko Sąlygoje WHERE. Vietoj to, sąlygą HAVING naudokite nurodyti sujungti laukų kriterijų. Daugiau informacijos ieškokite skyriuje darbą su duomenų: Grupuoti pagal ir HAVING.

Sąlygos WHERE sintaksė

Pagrindinė sąlygos WHERE sintaksė yra tokia:

WHERE field = criterion

Pavyzdžiui, norite sužinoti kliento telefono numerį, bet prisimenate tik kad kliento pavardė yra Bagel. Užuot ieškoję tarp visų telefono numerių savo duomenų bazėje, galite naudodamiesi sąlyga WHERE apriboti rezultatus ir lengviau rasti norimą telefono numerį. Jei pavardės laikomos lauke, pavadintame „Pavardė“, jūsų sąlyga WHERE atrodys taip:

WHERE [LastName]='Bagel'

Pastaba : Jūs neturite kurti Sąlygoje WHERE kriterijai dėl reikšmių. Galite naudoti kitus palyginimo operatorius, pvz., didesnis už (>) arba mažesnė už (<). Pvz., kur [kaina] > 100.

Sąlygos WHERE naudojimas duomenų šaltiniams sujungti

Kartais gali reikėti sujungti duomenų šaltinius pagal laukus su atitinkančiais duomenimis, bet skirtingais duomenų tipais. Pavyzdžiui, lauke vienoje lentelėje duomenų tipas gali būti Skaičius, o jūs norite lyginti tą lauką su kitos lentelės lauku, kurio duomenų tipas yra Tekstas.

Negalite kurti sujungimo tarp laukų, kuriuose yra skirtingų tipų duomenys. Norėdami sujungti duomenis iš dviejų duomenų šaltinių pagal reikšmes laukuose, kuriuose yra skirtingų tipų duomenys, sukuriate sąlygą WHERE, kuri vieną lauką naudoja kaip kriterijų kitam laukui, naudodamiesi raktiniu žodžiu LIKE.

Pavyzdžiui, norite naudoti duomenis iš lentelės1 ir lentelės2, bet tik kai duomenys lauke (tekstiniame lauke lentelėje1) atitinka duomenis lentelėje2 (skaičių lauką lentelėje2). Sąlyga WHERE bus maždaug tokia:

WHERE field1 LIKE field2

Daugiau informacijos apie tai, kaip sukurti kriterijus, naudokite sąlygą WHERE, rasite straipsnyje užklausos kriterijų pavyzdžiai.

Puslapio viršus

Pastaba : Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×