Johdanto Accessin SQL-toimintoihin

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 .

Kun haluat hakea tietoja tietokannasta, voidaan esittää tietojen Structured Query Language tai SQL. SQL on tietokoneen kieli, joka muistuttaa englanti, joita Tietokantaohjelmien ymmärrä. Tiedät SQL on tärkeää, koska jokaisella Microsoft Access-kyselyssä käyttää SQL. Tietoja SQL toiminta voi auttaa paremmin kyselyjen luominen ja voit helpottaa voit korjata kyselyn, kun se on ei tuota tuloksia, jotka haluat.

Huomautus: WWW-kyselyn SQL-koodia ei voi muokata.

Tässä artikkelissa käsiteltävät aiheet

SQL-ominaisuudet

Tavallinen SQL-lauseet: SELECT, FROM ja mihin

Tulosten lajittelu: TILAUKSEN mukaan

Tiivistetty tietojen käyttäminen: RYHMITTELYPERUSTE- ja HAVING

Kyselytulosten yhdistäminen: N

Lisätietoja SELECT-lause

Lisätietoja FROM-lause

Lisää WHERE-lause

SQL-kielen kuvaus

SQL on tietokoneen kieli käsittelyyn tietoja ja niiden väliset yhteydet. Relaatiotietokanta-ohjelmissa, kuten Access-tietojen käsitteleminen SQL avulla. Tietokoneen useita kieliä, kuten SQL on kansainvälinen standardi, kuten ISO ja ANSI viranomaisten standardeja tunnistetaan.

SQL:n avulla kuvaillaan tietojoukkoja, joiden avulla voit vastata kysymyksiin. Kun käytät SQL:ää, sinun on käytettävä oikeaa syntaksia. Syntaksi on sääntöjoukko, jonka perusteella kielen elementtejä yhdistetään oikein. SQL-syntaksi perustuu englannin kielen syntaksiin ja käyttää monia samoja elementtejä kuin Visual Basic for Applications (VBA) -syntaksi.

Esimerkiksi yksinkertainen SQL-lause, joka hakee nimiluettelon yhteystiedoista, joissa etunimenä on Mary, voi näyttää esimerkiksi tältä:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Huomautus: SQL ei käytetä vain käsittelevistä tietoja, mutta myös luomisen ja tietokantaobjektien, kuten taulukoita rakenteen muuttamista. SQL, jota käytetään luominen ja muuttaminen tietokantaobjektien osa kutsutaan data definition language (DDL). Tässä artikkelissa ei käsitellä DDL. Lisätietoja on artikkelissa luominen tai muokkaaminen taulukoiden tai indeksien määrityskysely kyselyllä.

SELECT-komennot

SQL-tietojoukon voi määrittää kirjoittamalla SQL-kyselyn. SELECT-komento sisältää tietokannasta haettavan tietojoukon täydellisen kuvauksen. Kuvaus sisältää seuraavat osat:

  • taulukot, joista tiedot haetaan

  • eri lähteistä peräisin olevien tietojen väliset suhteet

  • tietojen perustana olevat kentät tai laskutoimitukset

  • Ehdot, joiden on vastattava tiedot levy.

  • tieto siitä, lajitellaanko tulokset ja miten se tehdään.

SQL-lauseet

SQL-kysely koostuu lauseista. Kukin lause suorittaa jonkin SQL-toiminnon. Jotkin lauseet ovat pakollisia SELECT-komennossa. Seuraavassa taulukossa on mainittu 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

SQL-termit

Kukin SQL-lause koostuu termeistä, joita voidaan verrata lauseenjäseniin. SQL-termityypit on kuvattu seuraavassa taulukossa.

SQL-termi

Vastaava lauseenjäsen

Määritelmä

Esimerkki

tunniste

substantiivi

Tietokantaobjektin määrittämisessä käytettävä nimi, kuten kentän nimi.

Asiakkaat.[Puhelinnumero]

operaattori

verbi tai adverbi

Avainsana, joka edustaa toimintoa tai tarkentaa sitä.

AS

vakio

substantiivi

Muuttumaton arvo, kuten luku tai NULL.

42

lauseke

adjektiivi

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

>= Tuotteet.[Yksikköhinta]

Sivun alkuun

SQL-kielen peruslauseet: SELECT, FROM ja WHERE

SQL-komennon perusmuoto:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Huomautukset: 

  • Access ohittaa SQL-komennossa olevat rivinvaihdot. Kukin lause kannattaa kuitenkin erottaa rivinvaihdolla seuraavasta lauseesta SQL-komennon luettavuuden parantamiseksi.

  • Kukin SELECT-komento päättyy puolipisteeseen (;). Puolipiste voi esiintyä viimeisen lauseen lopussa tai omalla rivillään SQL-komennon lopussa.

Access-esimerkki

Alla on esimerkki siitä, miltä yksinkertainen SQL-komento voisi näyttää Accessissa:

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

1. SELECT-lause

2. FROM-lause

3. WHERE-lause

Tämän SQL-esimerkin voi lukea seuraavasti: "Valitse Yhteyshenkilöt-taulukon Sp-osoite- ja Yritys-kenttiin tallennetut tiedot, joiden Paikkakunta-kentässä on arvo Lahti."

Tarkastellaan nyt esimerkkiä lause lauseelta, jotta SQL-syntaksi tulee selväksi.

SELECT-lause

SELECT [E-mail Address], Company

Tämä on SELECT-lause. Se koostuu operaattorista (SELECT), jonka perässä on kaksi tunnistetta ([Sp-osoite] ja Yritys).

Jos tunniste sisältää välilyöntejä tai erikoismerkkejä (kuten "Sp-osoite"), se on asetettava hakasulkeisiin.

SELECT-lauseessa ei tarvitse määrittää, missä taulukoissa kentät ovat, eikä siinä voi määrittää mitään ehtoja tietojen valinnalle.

SELECT-lause on aina FROM-lauseen edellä SELECT-komennossa.

FROM-lause

FROM Contacts

Tämä on FROM-lause. Se koostuu operaattorista (FROM) ja tunnisteesta (Yhteyshenkilöt).

FROM-lauseessa ei ole luetteloa valittavista kentistä.

WHERE-lause

WHERE City="Seattle"

Tämä on WHERE-lause. Se koostuu operaattorista (WHERE) ja lausekkeesta. (Paikkakunta="Lahti").

Huomautus: SELECT- ja FROM-lauseista poiketen WHERE-lause ei ole SELECT-komennon pakollinen osa.

Voit suorittaa useita toimintoja, jotka SQL avulla voit tehdä käyttämällä SELECT, FROM ja WHERE-lauseet. Lisätietoja Voit käyttää näitä lauseet on jaettu seuraaviin osiin on tämän artikkelin lopussa:

Lisätietoja SELECT-lause

Lisätietoja FROM-lause

Lisää WHERE-lause

Tulosten lajitteleminen: ORDER BY

Microsoft Office Excelin tavoin Accessissa voi lajitella kyselyn tulokset taulukossa. ORDER BY -lauseella voit myös määrittää kyselyyn, miten haluat lajitella kyselyn palauttamat tulokset. Jos ORDER BY -lausetta käytetään, se on sijoitettava SQL-komennon viimeiseksi lauseeksi.

ORDER BY -lause sisältää luettelon lajittelussa käytettävistä kentistä, joiden on oltava siinä järjestyksessä, jossa lajittelutoimintoja käytetään.

Oletetaan esimerkiksi, että tulokset on lajiteltava ensin Yritys-kentän mukaan laskevassa järjestyksessä ja seuraavaksi – jos Yritys-kentässä on samoja arvoja – Sp-osoite -kentän mukaan nousevassa järjestyksessä. Tällöin ORDER BY -lause olisi seuraavanlainen:

ORDER BY Company DESC, [E-mail Address]

Huomautus: Oletusarvon mukaan Access lajittelee arvot nousevaan järjestykseen (A–Z, pienimmästä suurimpaan). Käytä DESC-avainsanaa, jos haluat sen sijaan lajitella arvot laskevassa järjestyksessä.

Saat lisätietoja ORDER BY -lausekkeesta ohjeaiheesta ORDER BY -lauseke.

Sivun alkuun

Yhteenvedettyjen tietojen käsittely: GROUP BY ja HAVING

Joskus tarvitaan yhteenvetotietoja, kuten kuukauden kokonaismyynti tai varaston kalliimmat nimikkeet. Voit tehdä tämän käyttämällä KOOSTE-funktio-kenttää SELECT-lausekkeessa. Jos haluat esimerkiksi kyselyn, joka näyttää kunkin yrityksen sähköpostiosoitteiden yhteenlasketun määrän, SELECT-lausekkeesi voisi näyttää tältä:

SELECT COUNT([E-mail Address]), Company

Koostefunktioita on käytettävissä kentän tietotyypin tai käytettävän lauseen mukaan. Lisätietoja käytettävissä olevista koostefunktioita on artikkelissa SQL-koostefunktiot.

Koostefunktiosta pois jätettävien kenttien määrittäminen: GROUP BY -lause

Koostefunktioita käytettäessä on yleensä määritettävä myös GROUP BY -lause. GROUP BY -lauseessa on luettelo kaikista kentistä, joihin ei käytetä koostefunktiota. Jos koostefunktioita käytetään kaikkiin kyselyn kenttiin, GROUP BY -lausetta ei tarvitse määrittää.

GROUP BY -lause tulee heti WHERE-lauseen jälkeen tai FROM lauseen jälkeen, jos WHERE-lausetta ei ole. GROUP BY -lauseessa on luettelo kentistä siinä muodossa kuin ne ovat SELECT-lauseessa.

Jos SELECT-lause käyttää edellä mainitussa esimerkissä koostefunktiota [Sp-osoite] -kenttään mutta ei Yritys-kenttään, GROUP BY -lause voisi olla seuraavanlainen:

GROUP BY Company

Saat lisätietoja GROUP BY -lausekkeesta ohjeaiheesta GROUP BY -lauseke.

Rajoittaminen koostearvoja käyttämällä ryhmän ehtoja: HAVING-lause

Jos haluat rajoittaa tuloksia ehdoilla, mutta niiden kohdekenttä on käytössä koostefunktiossa, WHERE-lausetta ei voi käyttää. Sen sijaan on käytettävä HAVING-lausetta. HAVING-lause toimii WHERE-lauseen tavoin, mutta sitä käytetään koostetiedoille.

Oletetaan esimerkiksi, että keskiarvon laskevaa AVG-funktiota käytetään SELECT-lauseen ensimmäisen kentän kanssa:

SELECT COUNT([E-mail Address]), Company

Jos haluat, että kysely rajoittaa tuloksia COUNT-funktion arvon mukaan, ehtoa ei voi käyttää kyseiselle kentälle WHERE-lauseessa. Sen sijaan ehto lisätään HAVING-lauseeseen. Jos esimerkiksi haluat, että kysely palauttaa rivit, joissa on useita yritykseen liittyviä sähköpostiosoitteita, HAVING-lause saattaisi olla seuraavanlainen:

HAVING COUNT([E-mail Address])>1

Huomautus: Kyselyllä voi olla WHERE-lause ja HAVING-lause: WHERE-lauseeseen sijoitetaan ehdot, joita ei käytetä koostefunktioiden kanssa, ja HAVING-lauseeseen sijoitetaan ehdot, joita käytetään koostefunktioiden kanssa.

Saat lisätietoja HAVING-lausekkeesta ohjeaiheesta HAVING-lauseke.

Sivun alkuun

Kyselytulosten yhdistäminen: UNION

Samanlaisten valintakyselyiden tuottamia tietoja voidaan tarkastella yhtenä joukkona käyttämällä UNION-operaattoria.

UNION-operaattorilla voi yhdistää kaksi SELECT-komentoa yhdeksi. Yhdistettävissä SELECT-komennoissa on oltava yhtä monta tuloskenttää, tuloskenttien on oltava samassa järjestyksessä ja niillä on oltava sama tai yhteensopiva tietotyyppi. Kun suoritat kyselyn, toisiaan vastaavien kenttien tiedot yhdistetään samaan tuloskenttään, joten kyselyn tuloksessa on sama määrä kenttiä kuin kussakin valintakyselyssä.

Huomautus: Yhdistämiskyselyssä Luku- ja Teksti-tietotyypit ovat yhteensopivia.

UNION-operaattoria käytettäessä on myös määritettävä ALL-avainsanalla, sisällytetäänkö kyselyn tulokseen mahdolliset toistuvat rivit.

Kaksi SELECT-komentoa yhdistävän yhdistämiskyselyn SQL-syntaksi on perusmuodossaan seuraavanlainen:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Oletetaan esimerkiksi, että käytettävissä on Tuotteet- ja Palvelut-nimiset taulukot. Kummassakin taulukossa on kentät, joissa on tuotteen tai palvelun nimi, hinta, takuuaika ja tieto tuotteen tai palvelun tarjoamisesta yksinoikeudella. Nämä kummankin taulukon neljä kenttää voidaan yhdistää esimerkiksi seuraavanlaisella yhdistämiskyselyllä:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Lisätietoja yhdistämisestä SELECT-lauseet UNION-operaattorilla on artikkelissa Yhdistäminen tulosten useita yhdistämiskyselyn avulla.

Sivun alkuun

Lisätietoja SELECT-lauseesta

SELECT-lause SELECT-lauseessa on lueteltu tietoja sisältävien kenttien jota haluat käyttää.

Tunnisteiden rajaaminen hakasulkeilla

Kentän nimen voi rajata hakasulkeilla SELECT-lauseessa. Jos nimessä ei ole välilyöntejä tai erikoismerkkejä (kuten välimerkkejä), hakasulkeet eivät ole pakollisia. Jos nimessä on välilyöntejä tai erikoismerkkejä, hakasulkeita täytyy käyttää.

Vihje: Voit säästää aikaa suunnitella lomakkeita ja raportteja, mutta saattaa sinut varmistetaan, kun kirjoitat Lisää, kun kirjoitat SQL-lauseet nimi, joka sisältää välilyöntejä on helpompi lukea. Siitä tulee ottaa huomioon, kun nimeät objekteja tietokannassa.

Jos SQL-kyselyssä on samannimisiä kenttiä, kunkin kentän tietolähteen nimi on lisättävä kentän nimeen SELECT-lauseessa. Kentän tietolähteen nimi on sama kuin FROM-lauseessa.

Kaikkien kenttien valitseminen

Kun haluat lisätä kaikki tíetolähteen kentät, voit nimetä ne yksitellen SELECT-lauseessa tai käyttää tähtiyleismerkkiä (*). Tähteä käytettäessä Access määrittää kyselyä suoritettaessa, mitä kenttiä tietolähde sisältää, ja sisällyttää kyseiset kentät kyselyyn. Näin voidaan varmistaa, että kysely pysyy ajan tasalla, kun tietolähteeseen lisätään uusia kenttiä.

Tähteä voi käyttää yhden tai useiden tietolähteiden kanssa SQL-lauseessa. Jos käytät tähteä ja tietolähteitä on useita, tietolähteen nimi on määritettävä tähden kanssa, jotta Access tietää, mistä tietolähteestä kentät ovat peräisin.

Oletetaan esimerkiksi, että haluat valita kaikki kentät Tilaukset-taulukosta mutta vain sähköpostiosoitteen Yhteyshenkilöt-taulukosta. SELECT-lause voisi olla seuraavanlainen:

SELECT Orders.*, Contacts.[E-mail Address]

Huomautus: Pidä kirjaa siitä, missä käytät tähteä. Jos tietolähteeseen lisätään myöhemmin kenttiä eikä tähän ole etukäteen varauduttu, kyselyn tulos ei ehkä ole odotetunlainen.

Ainutkertaisten arvojen valitseminen

Jos tiedät, että kysely sisältää ylimääräisiä tietoja ja haluat nähdä vain ainutkertaiset arvot, SELECT-lauseessa voi käyttää DISTINCT-avainsanaa. Oletetaan esimerkiksi, että asiakkaasi ilmenevät eri yhteyksissä, joissa puhelinnumero on toisinaan sama. Jos haluat varmistaa, että kukin puhelinnumero esiintyy vain kerran, SELECT-lauseen voisi määrittää seuraavasti:

SELECT DISTINCT [txtCustomerPhone]

Kenttien tai lausekkeiden nimien korvaaminen: AS-avainsana

Taulukkonäkymässä näkyvän kentän nimen voi vaihtaa määrittämällä SELECT-lauseeseen AS-avainsanan ja kentän aliaksen. Kentän aliaksella tarkoitetaan nimeä, joka määritetään kyselyn kentälle, jotta kyselyn tulosta olisi helpompi lukea. Jos esimerkiksi haluat valita tiedot kentästä nimeltä txtAsPuh ja kentässä on asiakkaiden puhelinnumeroita, voit parantaa kyselyn tuloksen luettavuutta käyttämällä SELECT-lauseessa kentän aliasta seuraavasti:

SELECT [txtCustPhone] AS [Customer Phone]

Huomautus: Kentän aliasta täytyy käyttää, jos SELECT-lauseessa käytetään lauseketta.

Tietojen valitseminen lausekkeen avulla

Joskus tietoihin perustuvien laskutoimitusten tarkasteltavan tai hakea vain osan kentän tietotyypin. Oletetaan esimerkiksi, että haluat palauttaa vuosi, jolloin on syntynyt asiakkaat-tietokannan BirthDate-kentän tietojen perusteella. SELECT-lauseessa voi näyttää seuraavankaltaiselta:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Tämä lauseke DatePart -funktio ja kaksi argumenttia – ”yyyy” (vakio), ja [BirthDate] (tunnus).

Voit käyttää mitä tahansa kelvollista lauseketta kenttänä, jos lauseke palauttaa yhden arvon, kun siihen syötetään yksi arvo.

Sivun alkuun

Lisätietoja FROM-lauseesta

SELECT-lauseessa FROM-lause määrittää taulukot tai kyselyt, jotka sisältävät SELECT-lauseen käyttämät tiedot.

Oletetaan, että haluat tietää jonkun tietyn asiakkaan puhelinnumeron. Jos oletetaan, että kenttä, josta tämä tieto löytyy, sisältyy tblAsiakas-taulukkoon, FROM-lause voisi olla seuraavanlainen:

FROM tblCustomer

Tunnisteiden rajaaminen hakasulkeilla

Nimen voi rajata hakasulkeilla Jos nimessä ei ole välilyöntejä tai erikoismerkkejä (kuten välimerkkejä), hakasulkeet eivät ole pakollisia. Jos nimessä on välilyöntejä tai erikoismerkkejä, hakasulkeita täytyy käyttää.

Vihje: Voit säästää aikaa suunnitella lomakkeita ja raportteja, mutta saattaa sinut varmistetaan, kun kirjoitat Lisää, kun kirjoitat SQL-lauseet nimi, joka sisältää välilyöntejä on helpompi lukea. Siitä tulee ottaa huomioon, kun nimeät objekteja tietokannassa.

Tietolähteiden nimien korvaaminen

SELECT-lauseen sisältämään tietolähteeseen voi viitata toisella nimellä käyttämällä FROM-lauseessa taulukon aliasta. Taulukon alias on nimi, joka määritetään kyselyssä mainitulle tietolähteelle, kun tietolähteenä on lauseke tai kun SQL-komennon kirjoittamista ja lukemista halutaan helpottaa. Tästä voi olla hyötyä erityisesti silloin, kun tietolähteen nimi on pitkä tai vaikea kirjoittaa ja kun eri taulukoissa on käytetty kentille samaa nimeä.

Jos esimerkiksi haluat valita tietoja kahdesta kentästä, joiden kummankin nimi on ID ja joista toinen on tblAsiakas-taulukossa ja toinen tblTilaus-taulukossa, SELECT-lause voisi olla seuraavanlainen:

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

Taulukoiden aliasten käyttö FROM-lauseessa voi helpottaa kyselyn kirjoittamista. Aliaksia sisältävä FROM-lause voisi näyttää seuraavanlaiselta:

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]

Huomautus: Kun taulukon alias on käytössä, voit viitata kyseiseen tietolähteeseen SQL-komennossa käyttämällä tietolähteen aliasta tai koko nimeä.

Toisiinsa liittyvien tietojen yhdistäminen

Kun tietuepareja on yhdistettävä kahdesta tietolähteestä, voit suorittaa liitoksen. Liitos on SQL-toiminto, joka määrittää, miten tietolähteet on liitetty toisiinsa ja sisällytetäänkö toisen tietolähteen tiedot, jos vastaavia tietoja ei löydy toisesta tietolähteestä.

Tiedot voi yhdistää kahdesta tietolähteestä suorittamalla liitos yhteisen kentän avulla. Kun tämän kentän arvot ovat samat, kummankin tietueen tiedot yhdistetään kyselyn tuloksessa.

Tietojen yhdistämisen lisäksi liitoksella voi myös määrittää, sisällytetäänkö toisen taulukon tietueet, jos vastaavaa tietuetta ei ole toisessa taulukossa.

Oletetaan, että haluat kaksi taulukoiden tietoja käytetään kyselyssä: Tblasiakas ja Tbltilaus. Kahden taulukon molemmat on kenttä, joka määrittää Asiakastunnus Asiakas. Kunkin tietueen Tblasiakas taulukossa voi olla vähintään yksi vastaavat tietueet Tbltilaus taulukon ja vastaavat arvot voidaan määrittää arvot Asiakastunnus-kenttään.

Jos haluat liittää taulukot niin, että kysely yhdistää taulukoiden tietueet mutta ohittaa jommankumman taulukon tietueet, jos toisessa taulukossa ei ole vastaavaa tietuetta, FROM-lause voisi olla seuraavanlainen (rivinvaihto lisätty luettavuuden parantamiseksi):

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

Microsoft Office Accessissa liitokset ilmenevät SELECT-komennon FROM-lauseessa. Liitostyyppejä on kaksi: sisäliitos ja ulkoliitos. Näitä kahta liitostyyppiä on käsitelty seuraavissa kohdissa.

Sisäliitokset

Sisäliitokset ovat yleisin liitostyyppi. Kun sisäliitoksen sisältävä kysely suoritetaan, kyselyn tulokseen sisällytetään vain ne tietueet, joissa sama arvo löytyy kummastakin liitetystä taulukosta.

Sisäliitoksen syntaksi (rivinvaihto lisätty luettavuuden parantamiseksi):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Seuraavassa taulukossa on kuvattu INNER JOIN -toiminnon osat.

Osa:

Kuvaus

Taulukko1, taulukko2

Niiden taulukkojen nimet, joista tietueet yhdistetään.

kenttä1, kenttä2

Yhdistettävien kenttien nimet. Jos ne eivät ole numeerisia, kenttien täytyy olla samaa tietotyyppi ja sisältää samantyyppisiä tietoja, mutta niiden ei tarvitse olla samannimisiä.

vertailuoper

Jokin seuraavista relaatiovertailuoperaattoreista: "=", "<", ">", "<=", ">=" tai "<>"

Ulkoliitokset

Ulkoliitokset muistuttavat sisäliitoksia siinä, että ne ilmaisevat kyselylle, miten kahden tietolähteen tiedot on yhdistettävä. Ne eroavat siinä, että ulkoliitokset määrittävät myös, sisällytetäänkö tiedot, vaikka yhteisiä arvoja ei ole. Ulkoliitoksissa määritetään sisällytettävien tietojen suunta. Voit määrittää, sisällytetäänkö kaikki tietueet ensimmäisestä liitoksessa määritetystä tietolähteestä (ns. vasen liitos) vai sisällytetäänkö kaikki tietueet toisesta liitoksessa määritetystä tietolähteestä (ns. oikea liitos).

Ulkoliitoksen syntaksi:

FROM Taulukko1 [vasemmalle | RIGHT] JOIN taulukko2
on Taulukko1.kenttä1vertailuoper TAULUKKO2.KENTTÄ2

Seuraavassa taulukossa on kuvattu LEFT JOIN- ja RIGHT JOIN -toimintojen eri osat.

Osa

Kuvaus

Taulukko1, taulukko2

Niiden taulukkojen nimet, joista tietueet yhdistetään.

kenttä1, kenttä2

Yhdistettävien kenttien nimet. Kenttien täytyy olla samaa tietotyyppi ja sisältää samantyyppisiä tietoja, mutta niiden ei tarvitse olla samannimisiä.

vertailuoper

Jokin seuraavista relaatiovertailuoperaattoreista: "=," "<," ">," "<=," ">=," tai "<>"

Lisätietoja liitoksista on artikkelissa Liitostaulukot ja -kyselyt.

Sivun alkuun

Lisätietoja WHERE-lauseesta

Kun haluat kyselyn palautettavien tietueiden määrän rajoittaminen tietojen avulla, voit käyttää kyselyn ehto SELECT-lauseen WHERE-lauseessa. Kyselyn ehto muistuttaa kaavan, se on merkkijono, joka voi olla kenttäviittauksia, operaattoreita ja vakioita. Kyselyehdot ovat lauseke.

Seuraavissa taulukoissa on joitakin esimerkkejä ehdoista ja kerrotaan, kuinka ne toimivat.

Ehdot

Kuvaus

>25 and <50

Tämä ehto koskee lukukenttää, kuten Hinta- tai YksiköitäVarastossa-kenttää. Kyselyn tulokseen sisällytetään vain ne tietueet, joiden Hinta- tai YksiköitäVarastossa-kenttä sisältää arvon, joka on suurempi kuin 25 ja pienempi kuin 50.

DateDiff ("yyyy", [Syntymäpv], Date()) > 30

Tämä ehto koskee päivämäärä- ja aikakenttää, kuten Syntymäpv. Vain tietueet, joissa henkilön syntymäpäivän ja kuluvan päivän välisten vuosien määrä on suurempi kuin 30, sisällytetään kyselyn tulokseen.

Is Null

Tätä ehtoa voidaan käyttää kaikissa kenttätyypeissä, ja sen avulla voidaan näyttää tietueet, joissa kentän arvo on Null.

Kuten yllä olevasta taulukosta ilmenee, ehdot voivat vaihdella suuresti kyseisen kentän tietotyypin ja tarpeiden mukaan. Jotkin ehdot ovat yksinkertaisia, ja niissä käytetään perusoperaattoreita ja vakioita. Jotkin ehdot ovat monimutkaisia, ja niissä käytetään funktioita, erikoisoperaattoreita ja kenttäviittauksia.

Tärkeää: Jos kentän koostefunktion, et voi määrittää kentälle ehtoja WHERE-lauseessa. Sen sijaan HAVING-lauseen avulla voit määrittää koostetun kenttiä koskevat ehdot. Lisätietoja on kohdassa Tiivistetty tietojen käyttäminen: RYHMITTELYPERUSTE- ja HAVING.

WHERE-lauseen syntaksi

WHERE-lauseen perussyntaksi:

WHERE field = criterion

Oletetaan esimerkiksi, että tarvitset asiakkaan puhelinnumeron, mutta muistat vain, että asiakkaan sukunimi on Bagel. Sen sijaan, että hakisit puhelinnumeroa kaikkien tietokannassa olevien puhelinnumeroiden joukosta, voit rajoittaa tuloksia WHERE-lauseella. Jos oletetaan, että sukunimet on tallennettu Sukunimi-nimiseen kenttään, WHERE-lause voisi olla seuraavanlainen:

WHERE [LastName]='Bagel'

Huomautus: Ei ole perustaa WHERE-lauseen täyttävien arvojen vastaavuus. Voit käyttää muita vertailuoperaattorit, kuten (>)-suurempi tai pienempi kuin (<). Esimerkiksi missä [Hinta] > 100.

Tietolähteiden yhdistäminen WHERE-lauseella

Toisinaan on syytä yhdistää tietolähteitä, joiden kenttien tietosisältö on sama, mutta joiden tietotyyppi on erilainen. Voi esimerkiksi olla, että haluat verrata taulukossa olevaa kenttää, jonka tietotyyppi on Luku, toisessa taulukossa olevaan kenttään, jonka tietotyyppi on Teksti.

Kenttien välille ei voi muodostaa liitosta, jos niiden tietotyyppi ei ole sama. Jos haluat yhdistää kahden tietolähteen tietoja eri tietotyyppiä olevien kenttien arvojen perusteella, käytä LIKE-avainsanaa, kun määrität WHERE-lauseen, jossa yksi kenttä toimii toisen kentän ehtona.

Oletetaan esimerkiksi, että haluat käyttää taulukko1:n ja taulukko2:n tietoja, mutta vain siinä tapauksessa, että kenttä1:n (taulukko1:n tekstikentän) tiedot vastavat kenttä2:n (taulukko2:n lukukentän) tietoja. WHERE-lause voisi olla seuraavanlainen:

WHERE field1 LIKE field2

Lisätietoja WHERE-lauseessa käytettävien ehtojen luomisesta on artikkelissa Esimerkkejä kyselyjen ehdoista.

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

×