SQL-lausete redigeerimine päringutulemite täpsustamiseks

SQL-lausete redigeerimine päringutulemite täpsustamiseks

NB! :  See artikkel on masintõlgitud, vaadake lahtiütlust. Selle artikli ingliskeelse versiooni leiate aadressilt (viiteks).

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 uut tüüpi andmebaasid. Lisateavet leiate teemast Accessi rakenduse loomine.

Selle artikli teemad

SELECT-lause loomine

SELECT-klausli kohandamine

FROM-klausli kohandamine

WHERE-klausli kohandamine

Kohandamine ühendimärgi abil

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").

Lisateavet leiate teemast valikupäringute 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

Kohanda

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 table2
ON table1.field1 = table2.field2

Lugege lisateavet ühenduste kasutamise kohta päringutes.

Lehe algusse

WHERE-klausli kohandamine

WHERE-klausli sisaldab kriteeriumid, mis aitab päringu tagastatud üksuste arv piirata. Artiklist Päringukriteeriumide näited ja kuidas need töötavad.

WHERE-põhiklauslit saate kohandada näiteks nii, et piirate päringute tulemite arvu. Oletagem, et soovite leida kliendi telefoninumbrit ja teil on meeles ainult tema perekonnanimi: Post. Selles näites talletatakse perekonnanimesid väljal Perekonnanimi, seega oleks SQL-süntaks järgmine:

WHERE [LastName]='Bagel'

WHERE-klausli abil saate ka ühendada andmeallikate veerge, mis sisaldavad kattuvaid andmeid, kuid millel on erinev andmetüüp. See on üsna mugav, kuna erineva andmetüübiga väljade vahel ei saa ühendust luua. Kasutage ühte välja teise välja kriteeriumina koos võtmesõnaga LIKE. Näiteks kui soovite kasutada andmeid tabelitest Varad ja Töötajad, kuid ainult siis, kui tabeli Varad varatüübi väljal oleval varatüübil on tabeli Töötajad vastaval väljal Kogus arv 3. Teie WHERE-klausel näeks 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_offer
FROM Products
UNION ALL
SELECT 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

Märkus. : Masintõlke lahtiütlus. Selle artikli tõlkis arvutisüsteem ilma inimese sekkumiseta. Microsoft pakub selliseid masintõlkeid, et inglise keelt mittekõnelevad kasutajad saaksid vaadata sisu Microsofti toodete, teenuste ja tehnoloogiate kohta. Kuna artikkel on masintõlgitud, võib see sisaldada sõnavara-, süntaksi- või grammatikavigu.

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×