„Access“ SQL: pagrindinės sąvokos, žodynas ir sintaksė
Applies To„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Kai norite nuskaityti duomenis iš duomenų bazės, galite pateikti duomenų užklausą naudodami struktūrinių užklausų kalbą (SQL). SQL – tai kompiuterio kalba, kuri labai panaši į anglų kalbą, bet kurią supranta duomenų bazių programos. Kiekvienai vykdomai užklausai naudojama SQL fone.

Supratę, kaip veikia SQL, galėsite lengviau kurti geresnes užklausas ir žinosite, kaip pakoreguoti pageidaujamų rezultatų neteikiančią užklausą.

Tai yra vienas iš straipsnių apie „Access“ SQL rinkinių. Šiame straipsnyje aprašomi pagrindiniai SQL naudojimo principai pasirenkant duomenis ir naudojami pavyzdžiai SQL sintaksei iliustruoti.

Šiame straipsnyje

Kas yra SQL?

SQL yra kompiuterio kalba, skirta faktų rinkiniams ir jų ryšiams tvarkyti. Sąryšinės duomenų bazės programos, pvz., „Microsoft Office Access“, naudoja SQL duomenims tvarkyti. Priešingai nei daugumą kompiuterio kalbų, SQL nesudėtinga skaityti ir suprasti net naujokui. Kaip dauguma kompiuterio kalbų SQL yra tarptautinio standarto kalba, pripažįstama standartus nustatančių institucijų, pvz., ISO ir ANSI.

SQL naudojama duomenų rinkiniams, galintiems padėti atsakyti į klausimus, apibūdinti. Kai naudojate SQL, turite naudoti tinkamą sintaksę. Sintaksė – tai taisyklių, pagal kurias kalbos elementai tinkamai suderinami, rinkinys. SQL sintaksė pagrįsta anglų k. sintakse ir naudoja daug tų pačių elementų kaip „Visual Basic for Applications“ (VBA) sintaksė.

Pavyzdžiui, paprastas SQL sakinys, pagal kurį nuskaitomas kontaktų, kurių vardai Mary, pavardžių sąrašas, gali atrodyti taip:

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

Pastaba: SQL naudojama ne tik duomenims valdyti, bet ir duomenų bazės objektams, pvz., lentelėms, kurti ir keisti. SQL dalis, naudojama duomenų bazės objektams kurti ir keisti, vadinama duomenų aprašo kalba (DDL). Šioje temoje neįtraukiama DDL. Daugiau informacijos žr. straipsnyje Lentelių arba indeksų kūrimas ar keitimas naudojant duomenų aprašo užklausą.

SELECT sakiniai

Norint aprašyti duomenų rinkinį naudojant SQL, reikia rašyti SELECT sakinį. SELECT sakinys apima visą duomenų, kuriuos norite gauti iš duomenų bazės, rinkinio aprašą. Įtraukiami nurodyti elementai.

  • Kokiose lentelėse pateikiami duomenys.

  • Kaip susiję skirtingų šaltinių duomenys.

  • Kuriuose laukuose ar kokius skaičiavimus atliekant bus pateikti duomenys.

  • Kriterijai, kuriuos duomenys turi atitikti, kad būtų įtraukti.

  • Ar reikia ir kaip reikia rikiuoti rezultatus.

SQL sąlygos

Kaip įprastam sakiniui SQL sakiniui priskiriamos sąlygos. Kiekviena sąlyga atlieka SQL sakinio funkciją. Kai kurios sąlygos būtinos SELECT sakinyje. Toliau pateiktoje lentelėje nurodomos dažniausiai naudojamos 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, panašūs į kalbos dalis. Toliau pateiktoje lentelėje nurodomi SQL terminų tipai.

SQL terminas

Panaši kalbos dalis

Apibrėžimas

Pavyzdys

identifikatorius

daiktavardis

Pavadinimas, kurį naudojate 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 sakinyje naudojama bendroji forma:

SELECT field_1FROM table_1WHERE criterion_1;

Pastabos: 

  • Programa „Access“ nepaiso eilučių lūžių SQL sakinyje. Tačiau apsvarstykite galimybę naudoti atskirą eilutę kiekvienai sąlygai, kad būtų lengviau skaityti SQL sakinius.

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

Pavyzdys naudojant „Access“

Toliau parodyta, kaip gali atrodyti paprastos pasirinkimo užklausos SQL sakinys programoje „Access“.

SQL objekto skirtukas su SELECT sakiniu

1. Sąlyga SELECT

2. Sąlyga FROM

3. Sąlyga WHERE

Šiame pavyzdyje SQL sakinys nurodo „Pažymėkite duomenis, kurie saugomi laukuose pav. „El. paštas“, „Adresas“ ir „Įmonė“ lentelėje pav. „Kontaktai“, ypač tuos įrašus, kurių lauko „Miestas“ reikšmė yra „Siatlas“.

Pažvelkime į pavyzdyje pateiktą kiekvieną sąlygą, kad sužinotume, kaip veikia SQL sintaksė.

Sąlyga SELECT

SELECT [E-mail Address], Company

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

Jei identifikatoriuje yra tarpų arba specialiųjų simbolių (pvz., „El. pašto adresas“), jis turi būti rašomas laužtiniuose skliaustuose.

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

Sąlyga SELECT visada rodoma prieš sąlygą FROM SELECT sakinyje.

Sąlyga FROM

FROM Contacts

Tai yra sąlyga FROM. Ją sudaro operatorius (FROM) ir identifikatorius (Kontaktai).

Sąlyga FROM nenurodo laukų, kuriuose reikia pažymėti.

Sąlyga WHERE

WHERE City="Seattle"

Tai yra sąlyga WHERE. Ją sudaro operatorius (WHERE) ir išraiška (Miestas=„Siatlas“).

Pastaba: Priešingai nei sąlygos SELECT ir FROM, sąlyga WHERE nėra būtinas SELECT sakinio elementas.

Galite atlikti daug veiksmų, kuriuos SQL suteikia galimybę atlikti naudojant sąlygas SELECT, FROM ir WHERE. Daugiau informacijos apie šių sąlygų naudojimą pateikiama nurodytuose papildomuose straipsniuose.

Puslapio viršus

Rezultatų rikiavimas: ORDER BY

Kaip „Microsoft Excel“ „Access“ leidžia rikiuoti užklausų rezultatus duomenų lape. Be to, užklausoje galite nurodyti, kaip norite rikiuoti rezultatus, kai vykdoma užklausa, naudodami sąlygą ORDER BY. Jei naudojate sąlygą ORDER BY, tai yra paskutinė SQL sakinio sąlyga.

Sąlyga ORDER BY apima laukų, kuriuos norite naudoti rikiuodami, sąrašą ta pačia tvarka, kuria norite taikyti rikiavimo operacijas.

Pavyzdžiui, tarkime, norite, kad rezultatai pirmiausia būtų surūšiuoti pagal lauko Įmonė reikšmę mažėjimo tvarka, o jei yra įrašų su tokia pačia įmonės reikšme, rūšiuojami toliau pagal reikšmes lauke El. pašto adresas didėjimo tvarka. Sąlyga ORDER BY būtų panaši į šią:

ORDER BY Company DESC, [E-mail Address]

Pastaba: Pagal numatytuosius parametrus „Access“ rikiuoja reikšmes didėjančia tvarka (A–Z, nuo mažiausios iki didžiausios). Reikšmėms rikiuoti mažėjančia tvarka naudokite raktažodį DESC.

Jei reikia daugiau informacijos apie sąlygą ORDER BY, žr. temą Sąlyga ORDER BY.

Puslapio viršus

Apibendrintų duomenų naudojimas: GROUP BY ir HAVING

Kartais gali reikėti naudoti apibendrintus duomenis, pvz., bendrąjį mėnesio pardavimą arba brangiausias prekes. Kad tai atliktumėte, turite pritaikyti agregavimo funkcija lauke sąlygoje SELECT. Pavyzdžiui, jei norite, kad pateikus užklausą būtų rodomas kiekvienos įmonės pateiktų el. pašto adresų skaičius, sąlyga SELECT galėtų būti, kaip nurodyta toliau.

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

Agregavimo funkcijos, kurias galite naudoti, nustatomos atsižvelgiant į lauke esančių duomenų tipą arba norimą naudoti išraišką. Daugiau informacijos apie pasiekiamas agregavimo funkcijas rasite straipsnyje SQL agregavimo funkcijos.

Laukų, kurie nenaudojami agregavimo funkcijoje, nurodymas: sąlyga GROUP BY

Kai naudojate agregavimo funkcijas, paprastai taip pat turite sukurti sąlygą GROUP BY. Sąlyga GROUP BY nurodo visus laukus, kuriems netaikote agregavimo funkcijos. Jei taikote agregavimo funkcijas visiems užklausos laukams, nereikia kurti sąlygos GROUP BY.

Sąlyga GROUP BY pateikiama iškart po sąlyga WHERE arba sąlyga FROM, jei nėra sąlygos WHERE. Sąlyga GROUP BY pateikia laukus, kaip jie rodomi sąlygoje SELECT.

Pvz., toliau nagrinėjant ankstesnį pavyzdį, jei sąlyga SELECT taiko agregavimo funkciją laukui [El. pašto adresas], bet ne „Įmonė“, sąlyga GROUP BY atrodo, kaip nurodyta toliau.

GROUP BY Company

Jei reikia daugiau informacijos apie sąlygą GROUP BY, žr. temą Sąlyga GROUP BY.

Agreguotų reikšmių apribojimas naudojant grupės kriterijus: sąlyga HAVING

Jei norite naudoti kriterijus rezultatams apriboti, bet laukas, kuriam norite taikyti kriterijus, naudojamas agregavimo funkcijoje, negalite naudoti sąlygos WHERE. Vietoj to reikia naudoti sąlygą HAVING. Sąlyga HAVING veikia kaip sąlyga WHERE, bet naudojama agreguotiems duomenims.

Pavyzdžiui, tarkime, kad naudojate funkciją AVG (apskaičiuojančią vidutinę reikšmę) su pirmu lauku sąlygoje SELECT.

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

Jei norite pateikti užklausą, kad būtų apriboti rezultatai pagal tos funkcijos COUNT reikšmę, negalite naudoti kriterijų tame lauke sąlygoje WHERE. Vietoj to reikia pateikti kriterijus sąlygoje HAVING. Pavyzdžiui, jei norite, kad pateikus užklausą būtų pateiktos tik eilutės, jei yra daugiau nei vienas el. pašto adresas, susietas su įmone, sąlyga HAVING gali atrodyti, kaip nurodyta toliau.

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

Pastaba: Užklausoje gali būti sąlygos WHERE ir HAVING – laukų, kurie nenaudojami agregavimo funkcijoje, kriterijai įtraukiami į sąlygą WHERE, o laukų, kurie naudojami agregavimo funkcijose, kriterijai įtraukiami į sąlygą HAVING.

Jei reikia daugiau informacijos apie sąlygą HAVING, žr. temą Sąlyga HAVING.

Puslapio viršus

Užklausų rezultatų sujungimas: UNION

Jei norite kartu peržiūrėti visus duomenis, kurie gaunami pateikus kelias panašias pasirinkimo užklausas, kaip sujungtą rinkinį, reikia naudoti operatorių UNION.

Naudodami operatorių UNION galite sujungti du SELECT sakinius į vieną. Sujungiami SELECT sakiniai turi turėti tiek pat išvesties laukų, išdėstytų ta pačia tvarka ir su tokių pačių arba suderinamų tipų duomenimis. Kai vykdote užklausą, duomenys iš kiekvieno atitinkamų laukų rinkinio sujungiami į vieną išvesties lauką, kad užklausos išvestyje būtų tiek pat laukų, kiek ir kiekviename SELECT sakinyje.

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

Kai naudojate operatorių UNION, taip pat galite nurodyti, ar užklausos rezultatai turėtų apimti pasikartojančias eilutes, jei jų yra, naudodami raktažodį ALL.

Pagrindinė sujungimo užklausos, sujungiančios du SELECT sakinius, SQL sintaksė nurodyta toliau.

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

Pvz., tarkime, kad yra lentelė, pavadinta „Produktai“, ir kita lentelė, pavadinta „Paslaugos“. Abiejose lentelėse yra laukų, kuriuose nurodytas produkto ar paslaugos pavadinimas, kaina, garantija arba garantinis laikotarpis ir tai, ar siūlote produktą arba paslaugą išskirtinėmis teisėmis. Nors lentelėje „Produktai“ saugoma garantijos informacija, o lentelėje „Paslaugos“ saugoma garantinio laikotarpio informacija, pagrindinė informacija yra tokia pati (ar užtikrinama konkretaus produkto ar paslaugos kokybė). Keturiems laukams iš dviejų lentelių sujungti galite naudoti sujungimo užklausą, tokią, kaip pateikiama toliau.

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

Daugiau informacijos, kaip sujungti SELECT sakinius naudojant operatorių UNION, ieškokite dalyje Kelių pasirinkimo užklausų rezultatų sujungimas naudojant sujungimo užklausą.

Puslapio viršus

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.