Sql sakinių redagavimas siekiant paryškinti užklausos rezultatus
Applies To„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Jei užklausos veikia nepakankamai sunkiai, įtraukus kelis pagrindinius SQL sakinius, bus lengviau sutelkti dėmesį į rezultatus. Pažvelkime į kelių tipų SQL sakinius ir sąlygas ar dalis, kurias galite redaguoti, kad gautumėte norimus rezultatus.

Pastaba:  Šis straipsnis netaikomas „Access“ žiniatinklio programoms – duomenų bazei, kurią sukuriate naudodami „Access“ ir paskelbiate internete.

Šiame straipsnyje:

Sakinio Select kūrimas

SQL išrinkimo sakinys turi dvi–tris sąlygas. Sąlyga SELECT nurodo duomenų bazei, kur ieškoti duomenų, ir prašo pateikti konkretų rezultatą.

Pastaba:  SELECT sakiniai visada baigiasi kabliataškiu (;) paskutinės sąlygos pabaigoje arba eilutėje, sql sakinio pabaigoje.

Toliau pateiktame išrinkimo sakinyje prašoma, kad "Access" gautų informaciją iš stulpelių El. pašto adresas ir Įmonė iš lentelės Kontaktai, ypač ten, kur stulpelyje Miestas randa "Sietlas".

SQL objekto skirtukas su SELECT sakiniu

Aukščiau pateiktoje užklausoje yra trys sakiniai SELECT, FROM ir WHERE.

1. Sąlyga SELECT išvardija stulpelius, kuriuose yra norimų naudoti duomenų, ir turi operatorių (SELECT), po kurio eina du identifikatoriai (El. pašto adresas ir Įmonė). Jei identifikatoriuje yra tarpų arba specialiųjų simbolių (pvz., "El. pašto adresas"), identifikatorių rašykite laužtiniuose skliaustuose.

2. Sąlyga FROM identifikuoja šaltinio lentelę. Šiame pavyzdyje yra operatorius (FROM) ir identifikatorius (Kontaktai).

3. Sąlyga WHERE yra pasirinktinė sąlyga. Pavyzdyje yra operatorius (WHERE) ir reiškinys (Miestas="Siatlas").

Daugiau informacijos apie išrinkimo užklausas žr . paprastos išrinkimo užklausos kūrimas.

Čia pateikiamas dažniausiai naudojamų SQL sąlygų sąrašas:

SQL sąlyga

Kaip ji veikia

Reikia?

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

Kiekvieną SQL sąlygą sudaro terminai. Čia pateikiamas kai kurių dažniausiai naudojamų SQL terminų sąrašas.

SQL terminas

Apibrėžimas

Pavyzdys

identifikatorius

Pavadinimas, kurį naudojate duomenų bazės objektui identifikuoti, pvz., stulpelio pavadinimas.

[El. pašto adresas] ir įmonė

operatorius

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

KAIP

konstanta

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

42

išraiška

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

>= Produktai.[Vieneto kaina]

Puslapio viršus

Select sąlygos tinkinimas

Tinkinimas

Pavyzdys

Jei norite matyti tik skirtingas reikšmes.

Sąlygoje SELECT naudokite raktažodį DISTINCT.

Pavyzdžiui, jei jūsų klientai yra iš kelių skirtingų filialų, o kai kurie turi tą patį telefono numerį ir norite matyti tik vieną kartą nurodytą telefono numerį, sąlyga SELECT turėtų būti tokia:

SELECT DISTINCT [txtCustomerPhone] 

Norėdami pakeisti identifikatoriaus rodymo duomenų lapo rodinyje būdą, kad būtų lengviau skaityti.

Naudokite AS operatorių (raktažodį, kuris nurodo veiksmą arba modifikuoja veiksmą) su lauko pseudonimu sąlygoje SELECT. Lauko pseudonimas yra pavadinimas, kurį priskiriate laukui, kad rezultatus būtų lengviau skaityti.

SELECT [txtCustPhone] AS [Customer Phone]

Sąlygos FROM tinkinimas

Tinkinimas

Pavyzdys

Galite naudoti lentelės pseudonimą arba kitą pavadinimą, kurį priskiriate lentelei išrinkimo sakinyje. Lentelės pseudonimas naudingas, jei lentelės pavadinimo pavadinimas ilgas, ypač jei turite kelis laukus, kurie turi tą patį pavadinimą iš skirtingų lentelių.

Norėdami pasirinkti duomenis iš dviejų laukų, abu pavadintų ID, vienas iš kurių yra iš lentelės tblCustomer, o kitas iš lentelės tblOrder:

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

Naudokite AS operatorių, kad apibrėžtumėte lentelės pseudonimus sąlygoje FROM:

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

Tada sąlygoje SELECT galite naudoti šiuos lentelės pseudonimus:

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

Naudokite sujungimus norėdami sujungti dviejų duomenų šaltinių įrašų poras į vieną rezultatą arba nurodyti, ar įtraukti įrašus iš bet kurios lentelės, jei susijusioje lentelėje nėra atitinkamo įrašo.

Sujunkite lenteles, kad užklausa sujungtų elementus iš lentelių ir neįtrauktų elementų, kai kitoje lentelėje nėra atitinkamo įrašo

Toliau nurodyta, kaip gali atrodyti sąlyga FROM.

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

Apie sujungimų naudojimą

Yra dviejų tipų sujungimai, vidiniai ir išoriniai sujungimai. Užklausose dažniausiai naudojami vidiniai sujungimai. Vykdant užklausą su vidiniu sujungimu, rezultatas rodo tik tuos elementus, kurių bendra reikšmė yra abiejose sujungtose lentelėse.

Išoriniai sujungimai nurodo, ar įtraukti duomenis, kai nėra bendros reikšmės. Išoriniai sujungimai yra kryptiniai, o tai reiškia, kad galite nurodyti, ar įtraukti visus įrašus iš pirmosios lentelės, nurodytos sujungime (vadinamame kairiuoju sujungimu), ar įtraukti visus antrosios lentelės įrašus į sujungimą (vadinamą dešiniuoju sujungimu). Išorinio sujungimo SQL sintaksė yra tokia:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Daugiau informacijos apie sujungimų naudojimą užklausoje žr. Lentelių ir užklausų sujungimas.

Puslapio viršus

Sąlygos WHERE tinkinimas

Sąlygoje WHERE yra kriterijų, padedančių apriboti užklausoje pateikiamų elementų skaičių. Peržiūrėkite užklausos kriterijų pavyzdžius ir jų veikimą.

Pavyzdys, kaip galite tinkinti pagrindinę sąlygą WHERE, yra apriboti užklausos rezultatus; Tarkime, kad norite rasti kliento telefono numerį ir tik prisiminti jo pavardę kaip Bagelis. Šiame pavyzdyje pavardės saugomos lauke Pavardė, todėl SQL sintaksė būtų:

WHERE [LastName]='Bagel'

Naudokite sąlygą WHERE, kad sujungtumėte duomenų šaltinius stulpeliuose, kuriuose yra sutampančių duomenų, bet skirtingų tipų duomenys. Tai naudinga, nes negalite sukurti laukų, kurių duomenų tipai skirtingi, sujungimo. Naudokite vieną lauką kaip kito lauko kriterijų su raktažodžiu LIKE . Pavyzdžiui, jei norite naudoti duomenis iš lentelės Turtas ir Darbuotojai tik tada, kai turto tipas lentelės Turtas lauke Turto tipas turi skaičių 3 lentelės Darbuotojai lauke Kiekis, štai kaip atrodys sąlyga WHERE:

WHERE field1 LIKE field2

Svarbu:  Sąlygoje WHERE negalima nurodyti lauko, naudojamo su agregavimo funkcija, kriterijų. Vietoj to agreguotų laukų kriterijams nurodyti galite naudoti sąlygą HAVING.

Puslapio viršus

Tinkinimas naudojant operatorių UNION

Naudokite operatorių UNION, kai norite matyti bendrą kelių panašių išrinkimo užklausų rezultatų rodinį. Pavyzdžiui, jei jūsų duomenų bazėje yra lentelė Produktai ir Paslaugos, ir abi jos turi tris laukus: išskirtinį pasiūlymą arba produktą ar paslaugą, kainą, garantiją arba garantiją. Nors lentelėje Produktai saugoma garantijos informacija, o lentelėje Paslaugos saugoma garantijos informacija, pagrindinė informacija yra ta pati. "Union" užklausą galite naudoti norėdami sujungti tris laukus iš dviejų lentelių, pvz.:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Vykdant užklausą, duomenys iš kiekvieno atitinkamų laukų rinkinio sujungiami į vieną išvesties lauką. Norėdami į rezultatus įtraukti besidubliuojančias eilutes, naudokite operatorių ALL.

Pastaba:  Sakinys Select turi turėti tą patį išvesties laukų skaičių ta pačia tvarka ir su tais pačiais arba suderinamais duomenų tipais. „Union“ užklausose skaičių ir teksto duomenų tipai yra suderinami.

Daugiau informacijos apie "Union" užklausas žr. "union" užklausos naudojimas norint peržiūrėti bendrą kelių užklausų rezultatą.

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ų.