Kyselyn tulosten tarkentaminen SQL-lauseita muokkaamalla

Kyselyn tulosten tarkentaminen SQL-lauseita muokkaamalla

Huomautus: Microsoft haluaa tarjota sinulle ajantasaisinta ohjesisältöä mahdollisimman nopeasti omalla kielelläsi. Tämä sivu on käännetty automaation avulla, ja siinä saattaa olla kielioppivirheitä tai epätarkkuuksia. Tarkoitus on, että sisällöstä on sinulle hyötyä. Kertoisitko sivun alareunassa olevan toiminnon avulla, oliko tiedoista hyötyä? Tästä pääset helposti artikkelin englanninkieliseen versioon.

Jos kyselyt eivät toimi riittävän hyvin, voit tarkentaa tuloksia lisäämällä joitakin SQL-peruslauseita. Artikkelissa kerrotaan muutamista SQL-lauseista ja niiden lausekkeista tai osista, joita voit muokata.

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

SELECT-lauseen mukauttaminen

FROM-lauseen mukauttaminen

WHERE-lauseen mukauttaminen

Mukauttaminen UNION-operaattorilla

SELECT-lauseen luominen

SQL-valintalauseet koostuvat kahdesta tai kolmesta osasta. SELECT-lause kertoo tietokannalle, mistä tietoa etsitään, ja pyytää palauttamaan tietyn tuloksen.

Huomautus: SELECT-lauseet päättyvät aina puolipisteseen (;). Puolipiste merkitään joko viimeisen lausekkeen loppuun tai omalle rivilleen SQL-lauseen loppuun.

Esimerkin valintalause pyytää Accessiä hakemaan tietoa sähköpostiosoitteen ja yrityksen sarakkeista sekä yhteystietojen taulukosta, erityisesti Kaupunki-sarakkeesta, jossa lukee "Seattle".

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

Edellisessä kyselyssä on kolme lausetta: SELECT, FROM ja WHERE.

1. SELECT-lauseke luettelee sarakkeet, joissa haluamasi tiedot ovat, ja sisältää operaattorin (SELECT), jonka perässä on kaksi tunnistetta (sähköpostiosoite ja yritys). Jos tunnisteessa on välilyöntejä tai erikoismerkkejä, kirjoita tunniste hakasulkeisiin.

2. FROM-lausekkeella tunnistetaan lähdetaulukko. Tässä esimerkissä operaattoria (FROM) seuraa tunniste (Yhteystiedot).

3. WHERE-lauseke on valinnainen lauseke. Esimerkissä on operaattori (WHERE) ja sen perässä lauseke (Kaupunki="Seattle").

Lisätietoja on artikkelissa hakukyselyjä yksinkertaisen kyselyn luominen.

Oheisessa luettelossa mainitaan yleisimmät SQL-lauseet.

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. Ohessa luetellaan yleisimmät SQL-ehdot.

SQL-ehto

Määritelmä

Esimerkki

tunniste

Sarakkeen nimi tai muu nimi, jota käytetään tietokantaobjektin tunnistukseen.

[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

Pelkkien DISTINCT-arvojen näyttö.

Käytä DISTINCT-avainsanaa SELECT-lauseessa.

Jos esimerkiksi asiakkaasi toimivat useissa eri haarakonttoreissa, joillakin on sama puhelinnumero ja haluat näyttää puhelinnumeron tuloksissa vain kerran, SELECT-lause muodostetaan seuraavasti:

SELECT DISTINCT [txtCustomerPhone] 

Luettavuutta voidaan parantaa muuttamalla tunnisteen näyttötapaa taulukkonäkymässä.

Käytä SELECT-lauseessa AS-operaattoria (avainsana, joka edustaa toimintoa tai muokkaa toimintoa) sekä kentän aliasta. Kentän aliaksella tarkoitetaan nimeä, joka määritetään kyselyn kentälle, jotta kyselyn tulosta olisi helpompi lukea.

SELECT [txtCustPhone] AS [Customer Phone]

FROM-lauseen mukauttaminen

Mukauttaminen

Esimerkki

Voit käyttää taulukon tunnusta tai eri nimeä, jonka kohdistat taulukkoon valintalauseessa. Taulukon tunnuksesta on apua pitkien taulukon nimien kanssa erityisesti, kun useilla eri taulukoista saaduilla kentillä on sama nimi.

Tietojen valinta kahdesta ID-nimisestä kentästä, joista toinen on peräisin taulukosta tblAsiakas ja toinen taulukosta tblTilaus:

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

Käytä AS-operaattoria taulukon tunnuksien määrittämiseen FROM-lauseessa:

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

Tämän jälkeen SELECT-lauseessa voi käyttää näitä taulukoiden tunnuksia seuraavasti:

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

Käytä liitoksia, kun haluat yhdistää tietuepareja kahdesta tietolähteestä yhteen tulokseen tai määrittää, sisällytetäänkö toisen taulukon tietueet, jos liittyvässä taulukossa ei ole vastaavaa tietuetta.

Liitä taulukot niin, että kysely yhdistää molempien taulukoiden kohteet ja sulkee pois kohteet, jos toisessa taulukossa ei ole vastaavaa tietuetta

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

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

Lisätietoja liitosten käytöstä

Liitostyyppejä on kaksi: sisäliitos ja ulkoliitos. Sisäliitokset ovat yleisimpiä kyselyissä. Kun sisäliitoksen sisältävä kysely suoritetaan, tuloksessa näkyvät vain ne kohteet, joiden kummassakin liitetyssä taulukossa on yhteinen arvo.

Ulkoliitokset määrittävät, sisällytetäänkö tiedot, joissa ei ole yhteisiä arvoja. Ulkoliitoksissa määritetään suunta. Voit siis määrittää, sisällytetäänkö liitokseen ensimmäisen taulukon kaikki tietueet (vasen liitos) tai toisen taulukon kaikki tietueet (oikea liitos). Ulkoliitoksen SQL-syntaksi:

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

Saat näkyviin lisätietoja liitosten kyselyn taulukoiden ja kyselyjenavulla.

Sivun alkuun

WHERE-lauseen mukauttaminen

WHERE-lause sisältää ehdot, jotka auttavat rajaamaan kyselyn tuottamien kohteiden määrää. Lisätietoja ehdoista ja niiden toiminnasta on artikkelissa Esimerkkejä kyselyjen ehdoista.

WHERE-peruslausetta voidaan mukauttaa esimerkiksi rajaamalla kyselyn tuloksia. Kun esimerkiksi haluat etsiä asiakkaan puhelinnumeron, mutta muistat ainoastaan tämän sukunimen Bagel. Tässä esimerkissä sukinimet on tallennettu Sukunimi-kenttään. SQL-syntaksi on siis

WHERE [LastName]='Bagel'

WHERE-lausetta käytetään myös silloin, jos halutaan yhdistää sellaisten sarakkeiden tietolähteet, joiden tiedot ovat samat, mutta tyypit eivät. Tämä on kätevää, koska liitosta ei voi luoda kenttien välille, jos niiden tietotyypit ovat erilaiset. Käytä yhtä kenttää toisen kentän ehtona LIKE-avainsanalla. Esimerkissä on WHERE-lause tapauksessa, jossa etsitään tietoja Kalusto- ja Työntekijät-taulukoista vain, kun Kalusto-taulukon kalustotyypin kentän arvo on 3 Työntekijät-taulukon Määrä-kentässä.

WHERE field1 LIKE field2

Tärkeää:  Et voi määrittää ehtoja kentälle, jota käytetään koostefunktion kanssa WHERE-lauseessa. Koontikenttien ehdot määritetään sen sijaan HAVING-lauseella.

Sivun alkuun

Mukauttaminen UNION-operaattorilla

Käytä UNION-operaattoria, kun haluat nähdä usean samankaltaisen valintakyselyn tulokset yhdistetyssä näkymässä. Jos tietokannassasi on esimerkiksi Tuotteet- ja Palvelut-taulukot ja kummassakin on kolme kenttää: tuote tai palvelu yksinoikeudella, hinta ja takuu. Vaikka Tuotteet-taulukko tallentaa tuotetakuutiedot ja Palvelut-taulukko palvelutakuutiedot, niiden tiedot vastaavat perustaltaan toisiaan. Nämä kummankin taulukon kolme kenttää voidaan yhdistää esimerkiksi seuraavanlaisella yhdistämiskyselyllä:

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

Kun suoritat kyselyn, toisiaan vastaavien kenttien tiedot yhdistetään samaan tuloskenttään. Käytä ALL-operaattoria, jos haluat näyttää tuloksissa toistuvat rivit.

Huomautus:  Yhdistettävissä SELECT-komennoissa on oltava yhtä monta tuloskenttää, tuloskenttien on oltava samassa järjestyksessä ja niillä on oltava sama tai yhteensopiva tietotyyppi. Yhdistämiskyselyssä Luku- ja Teksti-tietotyypit ovat yhteensopivia.

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

Sivun alkuun

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

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×