Kyselyn tulosten tarkentaminen SQL-lauseita muokkaamalla

Kyselyn tulosten tarkentaminen SQL-lauseita muokkaamalla

Jos kyselysi eivät riitä, voit keskittää tulokset lisäämällä perustietoja SQL lausekkeita. Seuraavassa on muutamia SQL-lauseita ja lausekkeita tai osia, joita voit muokata, jotta saat haluamiasi tuloksia.

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

Tämän artikkelin sisältö

Select-lauseen luominen

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

Huomautus:  SELECT-lauseet loppuvat aina puolipisteellä (;) joko viimeisen lauseen lopussa tai rivillä yksinään SQL-lausekkeen lopussa.

Seuraava valintalauseke pyytää Accessia hakemaan tiedot Yhteystiedot-taulukon Sähköpostiosoitteet- ja Yritys-sarakkeista, erityisesti siitä, mistä Kaupunki-sarakkeesta löytyy "Seattle".

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

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

1. SELECT-lauseessa luetellaan sarakkeet, jotka sisältävät tiedot, joita haluat käyttää, ja sisältää operaattorin (SELECT), jonka perässä on 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 määrittää lähdetaulukon. Tässä esimerkissä siinä on operaattori (FROM), jonka perässä on tunniste (Contacts).

3. WHERE-lause on valinnainen lauseke. Esimerkissä on operaattori (WHERE) ja sen jälkeen lauseke (City="Seattle").

Lisätietoja valintakyselyistä on ohjeaiheessa yksinkertaisen valintakyselyn luominen.

Seuraavassa on luettelo yleisistä SQL-lausekkeista:

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

SQL-ehto

Määritelmä

Esimerkki

tunniste

Nimi, jonka avulla 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 sivutoimipisteissä ja joillakin on sama puhelinnumero ja haluat nähdä puhelinnumeron vain kerran, SELECT-lause on seuraava:

SELECT DISTINCT [txtCustomerPhone] 

Voit muuttaa tapaa, jolla tunniste näkyy taulukkonäkymässä luettavuuden parantamiseksi.

Käytä AS-operaattoria (avainsana, joka edustaa toimintoa tai muokkaa toimintoa) SELECT-lauseen kenttätunnuksella. Kentän tunnus on nimi, jonka määrität kentälle, jotta tuloksia on helpompi lukea.

SELECT [txtCustPhone] AS [Customer Phone]

FROM-lauseen mukauttaminen

Mukauttaminen

Esimerkki

Voit käyttää taulukon aliasta tai toista nimeä, jonka määrität taulukolle valintalausekeessa. Taulukon tunnus on hyödyllinen, jos taulukon nimi on pitkä, erityisesti jos sinulla on useita kenttiä, jotka ovat samannimiset 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]

KÄYTÄ AS-operaattoria taulukon tunnusten määrittämiseen FROM-lauseessa:

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

Sen jälkeen voit käyttää näitä taulukon tunnuksia SELECT-lauseessa seuraavasti:

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

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

Taulukoiden yhdistäminen siten, että kysely yhdistää taulukoiden kohteet ja jättää pois kohteita, kun toisen taulukon tietuetta ei ole

FROM-lause voi näyttää esimerkiksi näin:

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

Tietoja liitoksien käyttämisestä

Liitoksia on kahdenlaisia, sisä- ja ulkoliitostyyppejä. Sisäliitokset ovat yleisempiä kyselyissä. Kun suoritat kyselyn, jossa on sisäliitos, tulos näyttää vain ne kohteet, joissa on yhteinen arvo kummassakin yhdistetyssä taulukossa.

Ulkoliitokset määrittävät, sisällytetäänkö tiedot, jos yhteistä arvoa ei ole. Ulkoliitokset ovat suuntaavaa, eli voit määrittää, sisällytetäänkö kaikki liitoksessa määritetyn ensimmäisen taulukon tietueet (eli vasen liitos) vai sisällytetäänkö kaikki liitoksen toisen taulukon (eli oikeanpuoleisen liitoksen) tietueet. Ulkoliitoksen SQL-syntaksi on seuraava:

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

Lisätietoja liitoksien käyttämisestä kyselyssä Liitostaulukot ja -kyselyt -kohdassa.

Sivun alkuun

WHERE-lauseen mukauttaminen

WHERE-lauseessa on ehtoja, jotka auttavat rajoittamaan kyselyssä palautettujen kohteiden määrää. Katso esimerkkejä kyselyn ehdoista ja niiden käytöstä.

Esimerkki WHERE-peruslausekkeen mukauttamisesta on kyselyn tulosten rajoittaminen. Oletetaan, että haluat etsiä asiakkaan puhelinnumeron ja muistat vain hänen sukuniminsä Bagel-nimellä. 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 vastaavia tietoja, mutta eri tietotyyppejä. Tämä on kätevää, koska et voi luoda liitosta eri tietotyyppejä tyyppien kenttien välille. Käytä toista kenttää toisen kentän ehtona LIKE-avainsanalla. Jos esimerkiksi haluat käyttää Kalusto-taulukon ja Työntekijät-taulukon tietoja, vain silloin, kun Kalusto-taulukon resurssityyppikentässä olevan kalustolajin Työntekijät-taulukon Määrä-kentässä on luku 3, WHERE-lause näyttää tällaiselta:

WHERE field1 LIKE field2

Tärkeää:  WHERE-lauseessa koostefunktion kanssa käytettävää kenttää ei voi määrittää. Sen sijaan koostettujen kenttien ehdot määritetään HAVING-lauseella.

Sivun alkuun

Mukauttaminen UNION-operaattorilla

Käytä UNION-operaattoria, kun haluat nähdä useiden vastaavien valintakyselyiden tulosten yhdistetyn näkymän. Jos tietokannassa on esimerkiksi Tuotteet-taulukko ja Palvelut-taulukko, kummassakin on kolme kenttää: yksinomainen tarjous tai tuote tai palvelu, hinta, takuu tai takuu. Vaikka Tuotteet-taulukkoon tallennetaan takuutiedot ja Palvelut-taulukko tallentaa takuutiedot, perustiedot ovat samat. Voit yhdistää kahden taulukon kolme kenttää näin:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

Kun suoritat kyselyn, vastaavien kenttien tiedot yhdistetään yhteen tulostuskenttään. Jos haluat sisällyttää tuloksiin rivien kaksoiskappaleita, käytä ALL-operaattoria.

Huomautus:  Select-lausekeessa on oltava sama määrä tuloskenttiä samassa järjestyksessä ja samojen tai yhteensopivien tietotyyppien kanssa. Yhdistämiskyselyssä Luku- ja Teksti-tietotyypit ovat yhteensopivia.

Lisätietoja yhdistetyistä kyselyistä on kohdassa Useiden kyselyjen yhdistetyn tuloksen tarkasteleminen käyttämällä union-kyselyä.

Sivun alkuun

Tarvitsetko lisäohjeita?

Kehitä Office-taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

×