Kyselyn tulosten tarkentaminen SQL-lauseita muokkaamalla
Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Jos kyselysi eivät toimi tarpeeksi ahkerasti, peruslausekkeiden lisääminen SQL voi auttaa keskittymään tuloksiin. Tarkastellaan joitakin SQL-lausetyyppejä ja lauseita tai osia, joita voit muokata, jotta saat haluamasi tulokset.

Huomautus:  Tämä artikkeli ei koske Access-verkkosovelluksia eli tietokantaa, jonka voit suunnitella Accessilla ja julkaista verkossa.

Tämän artikkelin sisältö

Select-lausekkeen luominen

SQL-valintalausekkeessa on 2–3 lausetta. SELECT-lause kertoo tietokannalle, mistä tiedot etsitään, ja pyytää sitä palauttamaan tietyn tuloksen.

Huomautus:  SELECT-lausekkeiden lopussa on aina puolipiste (;) joko viimeisen lauseen lopussa tai rivillä sql-lausekkeen lopussa.

Seuraava valintalauseke pyytää Accessia hakemaan tiedot Sähköpostiosoitteet- ja Yritys-sarakkeista Yhteystiedot-taulukosta, josta se löytää "Seattlen" Kaupunki-sarakkeesta.

SQL-objektivälilehti, jossa näkyy SELECT-komento

Yllä olevassa kyselyssä on kolme lausetta SELECT, FROM ja WHERE.

1. SELECT-lause sisältää sarakkeet, jotka sisältävät tiedot, joita haluat käyttää, ja sen jälkeen on operaattori (SELECT) ja kaksi tunnistetta (Sähköpostiosoite ja Yritys). Jos tunnisteessa on välilyöntejä tai erikoismerkkejä (kuten "Sähköpostiosoite"), kirjoita tunniste hakasulkeisiin.

2. FROM-lause tunnistaa lähdetaulukon. Tässä esimerkissä on operaattori (FROM) ja sen jälkeen tunniste (Yhteystiedot).

3. WHERE-lauseke on valinnainen lauseke. Esimerkissä on operaattori (WHERE), jonka perässä on lauseke (City="Seattle").

Lisätietoja valintakyselyistä on artikkelissa Yksinkertaisen valintakyselyn luominen.

Seuraavassa on luettelo yleisistä SQL-lauseista:

SQL-lause

Kuvaus

Pakollinen ?

SELECT

Määrittää kentät, joissa on halutut tiedot.

Kyllä

FROM

Määrittää taulukot, joissa on SELECT-lauseessa mainitut kentät.

Kyllä

WHERE

Määrittää kenttätason ehdot, jotka kunkin tulokseen sisällytettävän tietueen on täytettävä.

Ei

ORDER BY

Määrittää tulosten lajittelutavan.

Ei

GROUP BY

Määrittää koostefunktioita sisältävässä SQL-komennossa kentät, joista SELECT-lause ei tee yhteenvetoa.

Vain jos tällaisia kenttiä on.

HAVING

Määrittää koostefunktioita sisältävässä SQL-lauseessa ehdot, jotka liittyvät kenttiin, joista SELECT-lause tekee yhteenvedon.

Ei

Jokainen SQL-lause koostuu ehdoista. Seuraavassa on luettelo joistakin yleisistä SQL-termeistä.

SQL-ehto

Määritelmä

Esimerkki

tunniste

Nimi, jolla tunnistat tietokantaobjektin, kuten sarakkeen nimen.

[Sähköpostiosoite] ja Yritys

operaattori

Avainsana, joka edustaa toimintoa tai tarkentaa sitä.

AS

vakio

Muuttumaton arvo, kuten luku tai NULL.

42

ilmaus

Tunnisteiden, operaattoreiden, vakioiden ja funktioiden yhdistelmä, joka tuottaa yhden arvon.

>= Tuotteet.[Yksikköhinta]

Sivun alkuun

SELECT-lauseen mukauttaminen

Mukauttaminen

Esimerkki

Jos haluat nähdä vain erilliset arvot.

Käytä DISTINCT-avainsanaa SELECT-lauseessa.

Jos asiakkaasi ovat esimerkiksi useista eri sivutoimipisteistä ja joillakin on sama puhelinnumero ja haluat nähdä puhelinnumeron luettelossa vain kerran, SELECT-lauseke on seuraava:

SELECT DISTINCT [txtCustomerPhone] 

Jos haluat muuttaa tapaa, jolla tunniste näkyy taulukkonäkymässä, voit parantaa luettavuutta.

Käytä AS-operaattoria (avainsanaa, joka edustaa toimintoa tai muokkaa toimintoa) SELECT-lauseen kenttätunnuksella. Kentän alias on nimi, jonka määrität kentälle tulosten lukemisen helpottamiseksi.

SELECT [txtCustPhone] AS [Customer Phone]

FROM-lauseen mukauttaminen

Mukauttaminen

Esimerkki

Voit käyttää taulukon aliasta tai muuta nimeä, jonka määrität taulukolle valintalausekkeessa. Taulukon alias on hyödyllinen, jos taulukon nimen nimi on pitkä, etenkin jos sinulla on useita kenttiä, joilla on sama nimi eri taulukoista.

Jos haluat valita tietoja kahdesta kentästä, joista molemmat ovat nimeltään TUNNUS, joista toinen tulee taulukosta tblCustomer ja toinen taulukosta tblOrder:

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

Määritä FROM-lauseen taulukon tunnukset AS-operaattorin avulla:

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

Tämän jälkeen voit käyttää näitä taulukon aliaksia SELECT-lauseessa seuraavasti:

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

Liitosten avulla voit yhdistää kahden tietolähteen tietuepareja yhdeksi tulokseksi tai määrittää, sisällytetäänkö tietueet kummasta tahansa taulukosta, jos liittyvässä taulukossa ei ole vastaavaa tietuetta.

Yhdistä taulukot siten, että kysely yhdistää taulukoiden kohteet ja jättää pois kohteet, kun toisessa taulukossa ei ole vastaavaa tietuetta

FROM-lauseke voi näyttää tältä:

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

Tietoja liitosten käyttämisestä

Liitoksia on kahdenlaisia, sisä- ja ulkoliitoksia. Sisäliitokset ovat yleisempiä kyselyissä. Kun suoritat kyselyn, jossa on sisäliitos, tulos näyttää vain ne kohteet, joissa on yhteinen arvo molemmissa yhdistetyissä taulukoissa.

Ulkoliitokset määrittävät, sisällytetäänkö tiedot, jos yhteistä arvoa ei ole. Ulkoliitokset ovat suuntaliitoksia, eli voit määrittää, sisällytetäänkö kaikki liitokseen määritetyn ensimmäisen taulukon (nimeltään vasen liitos) tietueet vai sisällytetäänkö kaikki liitokseen toisen taulukon tietueet (eli oikea liitos). Ulkoliitos sisältää seuraavan SQL-syntaksin:

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

Lisätietoja liitosten käyttämisestä kyselyssä on artikkelissa Taulukoiden ja kyselyjen yhdistäminen.

Sivun alkuun

WHERE-lauseen mukauttaminen

WHERE-lause sisältää ehtoja, jotka auttavat rajoittamaan kyselyssä palautettavien kohteiden määrää. Katso esimerkkejä kyselyehdoista ja niiden toiminnasta.

Esimerkki WHERE-peruslausekkeen mukauttamisesta on kyselyn tulosten rajoittaminen. Oletetaan, että haluat paikantaa asiakkaan puhelinnumeron ja muistaa hänen sukunimensä vain Nimellä Bagel. Tässä esimerkissä sukunimet tallennetaan Sukunimi-kenttään, joten SQL-syntaksi on seuraava:

WHERE [LastName]='Bagel'

WHERE-lauseen avulla voit myös yhdistää tietolähteitä sarakkeisiin, joissa on toisiaan vastaavia tietoja, mutta eri tietotyyppejä. Tämä on kätevää, koska et voi luoda liitosta eri tietotyyppejä käyttävien kenttien välille. Käytä toista kenttää toisen kentän ehtona LIKE-avainsanan kanssa. Jos esimerkiksi haluat käyttää Resurssit-taulukon ja Työntekijät-taulukon tietoja, vain silloin, kun Resurssit-taulukon resurssityyppikentässä olevan resurssin tyypin arvo on 3 Työntekijät-taulukon Määrä-kentässä, WHERE-lausekkeesi näyttäisi tältä:

WHERE field1 LIKE field2

Tärkeää:  Et voi määrittää ehtoja kentälle, jota käytetään where-lauseen koostefunktion kanssa. Sen sijaan koostettujen kenttien ehdot määritetään HAVING-lauseella.

Sivun alkuun

Mukauttaminen UNION-operaattorin avulla

Käytä UNION-operaattoria, kun haluat nähdä useiden vastaavien valintakyselyjen tulosten yhdistetyn näkymän. Jos tietokannassa on esimerkiksi Tuotteet-taulukko ja Palvelut-taulukko ja molemmissa on kolme kenttää: yksinomainen tarjous tai tuote tai palvelu, hinta, takuu tai takuu. Vaikka Tuotteet-taulukko tallentaa takuutiedot ja Palvelut-taulukko tallentaa takuutiedot, perustiedot ovat samat. Yhdistämiskyselyn avulla voit yhdistää kahden taulukon kolme kenttää seuraavasti:

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

Kun suoritat kyselyn, kunkin vastaavan kenttäjoukon tiedot yhdistetään yhdeksi tuloskentäksi. Jos haluat sisällyttää tuloksiin rivien kaksoiskappaleet, käytä ALL-operaattoria.

Huomautus:  Valitse-lausekkeessa on oltava sama määrä tuloskenttiä samassa järjestyksessä ja samoilla tai yhteensopivilla tietotyypeillä. Yhdistämiskyselyssä Luku- ja Teksti-tietotyypit ovat yhteensopivia.

Lisätietoja yhdistämiskyselyistä on artikkelissa Useiden kyselyjen yhdistetyn tuloksen tarkasteleminen yhdistämiskyselyn avulla.

Sivun alkuun

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.