IN, NOT, TOP, Year(), Month(), Between - SQL õpetused
IN
Kui tahame ette anda lubatud väärtuste hulka, siis kasutame käsklust IN.
Näide
Kuva eesnimed ja sünniaastad inimestel, kelle sünniaasta on 1976, 1988.
where synniaasta IN (1976,1988)
NOT
Kui tahame kasutada eitust, siis on käskluseks NOT.
Näide
Kuva eesnimed ja sünniaastad inimestel, kelle sünniaasta ei ole 1996.
where NOT synniaasta =1996
TOP
Vahel pole vaja andmete kuvamiseks küsida terve tabeli andmeid. Piisab kui me saame lihtsalt 3 esimest nime või kõige vanema auto või 15% kõige odavamaid kaupu. Käskluseks on ikka TOP.
Näide
Väljastame kolm esimest nime järjestatud tähestiku järgi kasvavalt.
SELECT TOP 3 eesnimi FROM inimesed ORDER BY eesnimi
Samas kui on näiteks viis samanimelist, siis näidatakse ikka ainult kolme. Selleks, et teised ennast halvasti ei tunneks, näitame näiteks kõiki eesnimesid, kes on sündinud samal aastal kui esimesed 3.
SELECT TOP 3 WITH TIES eesnimi, synniaasta FROM inimesed
ORDER BY synniaasta
Vahel võib vaja minna ka protsentuaalset väljavõtet. Näiteks näitame 3% kõige odavamatest kaupadest.
SELECT TOP 3 PERCENT kaubanimetus, hind FROM kaubad ORDER BY hind
Tulpade ümber nimetamine
Kui tabelite tulbad on selgelt nimetatud, siis on päringust küllalt hästi aru saada, kus tulbas millega tegu on. Vahel aga lõpprakenduse kujunduse jaoks, mõnikord lihtsalt selguse tekitamiseks on hea päringu tulemusena tekkivad tulbad (ümber) nimetada. Selleks sobib "AS uusnimi" tulbapäringu lõpus. Siin näiteks tehakse Eesnimi suureks ja synniaasta Aastaks.
SELECT [eesnimi] as Eesnimed, [synniaasta] as Aastad
Soovitud teksti lisamine
Soovitud teksti saab ka omaette tulbaks lisada. Näiteks võib päringu tulemuseks olla:
Eesnimi aastast 2000
SELECT [eesnimi] as Eesnimed, 'aastast' as vahetekst, [synniaasta] as Aastad
Year(), Month(), Between
Vaatame siin kohal ka ajafunktsioone. Kui soovime vaadata näiteks augustis 2009 toimunud oste, siis siinkohal kaks võimalust. Tabelisse on mõistlik lisada aeg andmetüübina date. Sisestamisel on vaja lisada andmed apostroofide vahele vormingus '2009-05-25'.
where Year(kuupaev) = 2009 AND Month(kuupaev) = 8;
Eelmises näites otsime andmeid, kus kuupäeva väärtuses aasta oleks võrdne 2009-ga ja kuu oleks võrdne 8-ga.
WHERE kuupaev BETWEEN '2009-08-01' AND '2009-08-31';
Eelmises näites näitame BETWEEN käsuga vahemiku, milles ostukuupäev võis toimuda.
Eve Keerus-Jusupov
21.12.2010


