SQL-lausete redigeerimine päringutulemite täpsustamiseks
Applies ToMicrosoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Kui teie päringud ei toimi piisavalt hästi, võib mõningate SQL-põhilausete lisamine aidata tulemeid piiritleda. Järgmisena tutvustame mõningaid SQL-lausete tüüpe ja klausleid või osi, mida saate soovitud tulemite saamiseks redigeerida.

Märkus.:  See artikkel ei kehti Accessi veebirakenduste kohta – need on Accessis loodavad, kuid veebis avaldatavad andmebaasid.

Selle artikli teemad

SELECT-lause loomine

SQL-i SELECT-lausel on kaks või kolm klauslit. SELECT-klausel annab andmebaasile teada, kust andmeid otsida, ja käsib sel tagastada kindla tulemi.

Märkus.:  SELECT-laused lõpevad alati semikooloniga (;) viimase klausli lõpus või SQL-lause lõpus eraldi real.

Järgmine SELECT-lause käsib Accessil tuua teabe tabeli Kontaktid veergudest Meiliaadress ja Ettevõte, kui see leiab veerust Linn sõna "Seattle".

SQL-objektivahekaart, kus on kuvatud SELECT-lause

Ülaloleval päringul on kolm klauslit: SELECT, FROM ja WHERE.

1. SELECT-klausel: loetleb veerud, mis sisaldavad kasutatavaid andmeid, ja sisaldab tehtemärki (SELECT), millele järgnevad kaks identifikaatorit (Meiliaadress ja Ettevõte). Kui identifikaator sisaldab tühikuid või erimärke (nt "Meiliaadress"), ümbritsege identifikaator nurksulgudega.

2. FROM-klausel tuvastab lähtetabeli. Selles näites järgneb tehtemärgile (FROM) identifikaator (Kontaktid).

3. WHERE-klausel on valikuline klausel. Näites järgneb tehtemärgile (WHERE) avaldis (Linn="Seattle").

Valikupäringute kohta leiate lisateavet teemast Lihtsa valikupäringu loomine.

Alljärgnev on loend tavalisematest SQL-klauslitest.

SQL-klausel

Toiming

Kas see on nõutav ?

SELECT

Loetleb huvipakkuvaid andmeid sisaldavad väljad.

Jah

FROM

Loetleb tabelid, mis sisaldavad SELECT-klauslis loetletud välju.

Jah

WHERE

Määrab väljakriteeriumid, millele iga tulemitesse kaasatav kirje peab vastama.

Ei

ORDER BY

Määrab tulemite sortimise järjestuse.

Ei

GROUP BY

Loetleb kokkuvõttefunktsioone sisaldavas SQL-lauses väljad, mis pole SELECT-klauslis summeeritud.

Ainult juhul, kui sellised väljad on olemas

HAVING

Määrab kokkuvõttefunktsioone sisaldavas SQL-lauses tingimused, mis rakendatakse SELECT-lauses summeeritud väljadele.

Ei

Iga SQL-klausel koosneb terminitest. Järgmisena tutvustame levinumate SQL-i terminite loendit.

SQL-i termin

Definitsioon

Näide

identifikaator

Nimi, mille abil tuvastatakse andmebaasiobjekt (nt veeru nimi).

[Meiliaadress] ja Ettevõte

tehtemärk

Võtmesõna, mis tähistab toimingut või muudab seda.

AS

konstant

Muutumatu väärtus (nt arv või väärtus NULL).

42

avaldis

Identifikaatorite, tehtemärkide, konstantide ja funktsioonide kombinatsioon, mille tulemiks on üksikväärtus.

>= Tooted.[Ühiku hind]

Lehe algusse

SELECT-klausli kohandamine

Kohanda

Näide

Ainult erinevate väärtuste kuvamine

Kasutage SELECT-klauslis võtmesõna DISTINCT.

Näiteks kui teie kliendid on mitmest erinevast harukontorist ja mõnel neist on sama telefoninumber ning te soovite kuvada kõik telefoninumbrid ainult ühe korra, võiks teie SELECT-klausel olla järgmine:

SELECT DISTINCT [txtCustomerPhone] 

Identifikaatori andmelehevaates kuvamise viisi muutmine loetavuse parandamiseks

Kasutage oma SELECT-klausli välja pseudonüümi koos tehtemärgiga AS (võtmesõna, mis tähistab toimingut või muudab seda). Välja pseudonüüm on nimi, mille määrate väljale, et tulemeid oleks hõlpsam lugeda.

SELECT [txtCustPhone] AS [Customer Phone]

FROM-klausli kohandamine

Kohandamise eesmärk

Näide

Saate kasutada tabeli pseudonüümi või erinevat nime, mille olete SELECT-lauses tabelile määranud. Tabeli pseudonüüm on kasulik juhul, kui tabelinimi on pikk, eriti siis, kui teil on mitu erinevatest tabelitest pärit sama nimega välja.

Andmete valimiseks kahelt väljalt (mõlema nimi on ID), millest üks on pärit tabelist tblKlient ja teine tabelist tblTellimus:

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

FROM-klauslis tabelipseudonüümide määratlemiseks kasutage tehtemärki AS:

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

Seejärel saate kasutada neid tabelipseudonüüme oma SELECT-klauslis järgmiselt:

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

Kahe andmeallika kirjepaaride ühendamiseks üheks tulemiks kasutage ühendusi. Samuti saate nende abil määrata, kas soovite kaasata sellised tabelikirjed, millel puudub seotud tabelis vaste.

Ühendage tabelid nii, et päring kombineeriks tabelite üksused ja välistaks sellised üksused, millel pole teises tabelis vastavat kirjet.

FROM-klausel võib välja näha selline:

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

Ühenduste kasutamine

Ühendusi on kahte tüüpi: sisemised ja välised ühendused. Sisemised ühendused on päringutes rohkem levinud. Kui käivitate sisemise ühendusega päringu, kuvatakse tulemis ainult need üksused, millel on mõlemas ühendatud tabelis ühine väärtus.

Välised ühendused määravad selle, kas kaasata andmed, millel puuduvad ühised väärtused. Välised ühendused on suunatud, mis tähendab, et saate määrata, kas kaasata kõik ühenduses määratud esimese tabeli kirjed (vasakpoolne ühendus) või ühenduse teise tabeli kirjed (parempoolne ühendus). Välisel ühendusel on järgmine SQL-süntaks:

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

Lisateavet ühenduste kasutamise kohta päringus leiate teemast Tabelite ja päringute ühendamine.

Lehe algusse

WHERE-klausli kohandamine

WHERE-klausel sisaldab kriteeriume, mille abil saate piiritleda päringu tagastatavate üksuste arvu. Tutvuge päringukriteeriumide näidete ja nende toimimisega.

Näide WHERE-põhiklausli kohandamisest on päringu tulemite piiramine. Oletagem, et soovite leida kliendi telefoninumbri ja mäletate tema perekonnanime üksnes Baglina. Selles näites talletatakse perekonnanimed väljal Perekonnanimi, seega oleks SQL-süntaks järgmine:

WHERE [LastName]='Bagel'

WHERE-klauslit saate kasutada ka selliste veergude andmeallikate kombineerimiseks, mis sisaldavad kattuvaid andmeid, kuid erinevaid andmetüüpe. See on kasulik, kuna eri andmetüüpidega väljade vahel ei saa ühendusi luua. Kasutage üht välja teise välja kriteeriumina koos võtmesõnaga LIKE . Näiteks kui soovite kasutada andmeid tabelitest Varad ja Töötajad, siis ainult siis, kui tabeli Varad väljal Varad oleva vara liigi arv on 3 tabeli Töötajad väljal Kogus, näeb WHERE-klausel välja järgmine:

WHERE field1 LIKE field2

NB!:  WHERE-klauslis ei saa määrata kriteeriume sellise välja jaoks, mida kasutatakse kokkuvõttefunktsiooniga. Kasutage selle asemel HAVING-klauslit, et määrata kokkuvõtteväljade kriteeriumid.

Lehe algusse

Kohandamine ühendimärgi abil

Kasutage ühendimärki siis, kui soovite näha mitme sarnase valikupäringu ühendatud tulemivaadet. Näiteks kui teie andmebaasis on tabel Tooted ja tabel Teenused ja neis mõlemas on kolm välja: eripakkumine, toode või teenus, hind, garantii või tagatis. Kuigi tabelis Tooted talletatakse garantiiteavet ja tabelis Teenused tagatiseteavet, on põhiteave sama. Saate ühispäringu abil ühendada kahe tabeli kolm välja järgmiselt:

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

Päringu käivitamisel ühendatakse iga vastava väljakomplekti andmed üheks väljundiväljaks. Tulemitesse duplikaatridade kaasamiseks kasutage tehtemärki ALL.

Märkus.:  SELECT-lauses peab olema sama arv väljundivälju, need peavad olema samas järjestuses ja sama või ühilduva andmetüübiga. Ühispäringu puhul on ühilduvad andmetüübid Number ja Tekst.

Ühispäringute kohta leiate lisateavet teemast Mitme päringu ühistulemi kuvamine ühispäringu abil.

Lehe algusse

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.