Tämä artikkeli kuuluu Access SQL:ää käsittelevään artikkelisarjaan. Tässä artikkelissa annetaan ohjeet SELECT-lauseen kirjoittamiseen sekä esimerkkejä eri tekniikoista SELECT-lauseiden kirjoittamiseen.
Jos haluat lukea yleiskatsauksen Access SQL:stä, lue ohjeartikkeli Access SQL: peruskäsitteet, sanasto ja syntaksi.
Artikkelin sisältö
Valitse kentät: SELECT-lause
SELECT-komento alkaa yleensä SELECT-lauseella. SELECT-lauseella voit määrittää niiden kenttien nimet, jotka sisältävät tiedot, joita haluat käyttää kyselyssä. Voit käyttää lausekkeita myös kenttien asemesta tai niiden ohessa. Voit käyttää kenttänä myös toista SELECT-komentoa (tätä kutsutaan alikyselyksi).
Oletetaan, että haluat tietää asiakkaiden puhelinnumerot. Olettaen, että asiakkaan puhelinnumeroita tallentavan kentän nimi on txtCustPhone, SELECT-lauseke näkyy seuraavasti:
SELECT [txtCustomerPhone]
Voit sulkea nimen hakasulkeisiin. Jos nimi ei sisällä välilyöntejä tai erikoismerkkejä (esimerkiksi välimerkkejä), hakasulkeet eivät ole pakollisia. Jos nimi sisältää välilyöntejä tai erikoismerkkejä, hakasulkeita on pakko käyttää.
Vihje: Välilyöntejä sisältävä nimi on helpompi lukea ja se voi säästää aikaa lomakkeita ja raportteja suunniteltaessa, mutta se voi saada sinut kirjoittamaan enemmän, kun kirjoitat SQL-lausekkeita. Ota tämä huomioon, kun nimeät Objekteja Access-tietokannassa.
Jos SQL-lauseessasi on samannimisiä kenttiä, sinun täytyy lisätä kunkin kentän tietolähteen nimi kentän nimeen SELECT-lausesssa. Käytä tietolähteelle samaa nimeä, jota käytät FROM-lauseessa.
Kaikkien kenttien valitseminen
Kun haluat sisällyttää kaikki kentät tietolähteestä, voit joko luetella kaikki kentät yksitellen SELECT-lauseessa tai voit käyttää yleismerkkiä (se on tähti eli *). Kun käytät tähteä, Access määrittää kyselyn suorittamisen yhteydessä, mitä kenttiä tietolähde sisältää, ja sisällyttää sitten ne kaikki kyselyyn. Tämän ansiosta kysely pysyy ajan tasalla, vaikka tietolähteeseen lisätään uusia kenttiä.
Voit käyttää tähteä useiden tietolähteiden kanssa SQL-lauseissa. Jos käytät tähteä ja tietolähteitä on useita, sinun täytyy sisällyttää tietolähteen nimi yhdessä tähden kanssa, jotta Access osaa päätellä, mistä tietolähteestä sisällytetään kaikki kentät.
Oletetaan esimerkiksi, että haluat valita kaikki tilaukset-taulukon kentät, mutta vain Yhteystiedot-taulukon sähköpostiosoitteen. SELECT-lauseke saattaa näyttää tältä:
SELECT Orders.*, Contacts.[E-mail Address]
Huomautus: Muista, missä käytät tähteä. Jos tietolähteeseen lisätään myöhemmin uusia kenttiä, joihin et ollut varautunut, kyselysi tulokset voivat olla yllättäviä.
Yksilöllisten arvojen valitseminen
Jos tiedät, että lausekkeessa valitaan tarpeettomia tietoja ja haluat mieluummin nähdä vain erilliset arvot, voit käyttää SELECT-lauseen DISTINCT-avainsanaa. Oletetaan esimerkiksi, että asiakkailla on useita eri kiinnostuksen kohteita, joista osa käyttää samaa puhelinnumeroa. Jos haluat varmistaa, että näet kunkin puhelinnumeron vain kerran, SELECT-lause näkyy seuraavasti:
SELECT DISTINCT [txtCustomerPhone]
Vaihtoehtoisten nimien käyttö kentille ja lausekkeille: AS-avainsana
Voit muuttaa minkä tahansa kentän selitettä taulukkonäkymässä käyttämällä AS-avainsanaa ja SELECT-lauseen kenttätunnusta. Kentän alias on nimi, jonka määrität kyselyn kentälle tulosten lukemisen helpottamiseksi. Jos esimerkiksi haluat valita tietoja txtCustPhone-nimisestä kentästä ja kenttä sisältää asiakkaiden puhelinnumeroita, voit parantaa tulosten luettavuutta select-lausekkeen kenttätunnuksella seuraavasti:
SELECT [txtCustPhone] AS [Customer Phone]
Huomautus: Sinun täytyy käyttää kenttätunnusta, kun käytät lauseketta SELECT-lauseessa.
Valitseminen lausekkeen avulla
Joskus haluat ehkä tarkastella laskelmia tietojesi perusteella tai hakea vain osan kentän tiedoista. Oletetaan, että haluat nähdä asiakkaiden syntymävuodet tietokantasi BirthDate-kentän tietojen perusteella. SELECT-lauseesi näyttäisi tältä:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Tämä lauseke koostuu DatePart-funktiosta ja kahdesta argumentista, jotka ovat "yyyy" (vakio) ja [BirthDate] (tunniste).
Voit käyttää kenttänä mitä tahansa kelvollista lauseketta, jos se tuottaa yksittäisen tulosarvon, kun lausekkeeseen annetaan yksi käsiteltävä arvo.