Ajaloo andmebaaside kursuse (HVAJ.02.003) õppematerjal
Ajaloo andmebaaside kursuse (HVAJ.02.003) õppematerjal
Alampäringud on päringud, mida saab kirjutada teise päringu sisse, et anda esimesele päringule ette parameetrid. Näiteks soovime saada isikuid, kelle vanus on üle keskmise. Selleks on vaja leida eraldi, mis on keskmine vanus ja sorteerida isikute hulgast välja need, kelle vanus on suurem:
SELECT * FROM "Isik" WHERE vanus > (SELECT AVG (vanus) FROM "Isik");
Võime kontrollida, mis oli keskmine vanus.
SELECT AVG (vanus) as keskmine_vanus FROM "Isik");
Saame selle ka ümardada:
SELECT ROUND (AVG (vanus)) as keskmine_vanus FROM "Isik");
Saame kokku lugeda mingile tingimusele vastavate ridade arvu:
SELECT COUNT (vanus) FROM "Isik" WHERE perenimi = 'Luik' ;
Lihtsamad matemaatilised funktsioonid
COUNT | ridade arv |
MAX | suurim väärtus |
MIN | väikseim väärtus |
AVG | aritmeetiline keskmine |
SUM | summa |
ROUND | ümardab lähima täisarvuni. Nt. round(42.4) annab 42. |
ROUND (v numeric, s int) | ümardab s arvu kümnendkohani. Nt round(42.4382.2) annab 42.44 |
Lihtsamad sõne (teksti) funktsioonid
Funktsioon | Tagastatakse | Näide | Tulemus |
---|---|---|---|
string || string | ’post’ || ’greSQL’ | PostgreSQL | |
string || non-string or non-string || string | 'Väärtus: ' || 42 | Väärtus: 42 | |
char_length (string) või character_length (string) or length (string) | tähemärkide arv sõnes | char_length(’Mart’) | 4 |
lower (string) | konverteerib väiketähtedeks | lower(’JAAN’) | jaan |
upper (string) | konverteerib suurtähtedeks | upper(’jaan’) | JAAN |
Võrdlusoperaatorid PostgreSQLis
= | võrdne |
<> või != | mittevõrdne |
> | suurem kui |
< | väiksem kui |
>= | suurem või võrdne |
<= | väiksem või võrdne |
NOT | pöörab tingimuse vastupidiseks |
AND | saab lisada mitu tingimust |
OR | saab lisada mitu tingimust, millest vähemalt ühele peab vastama |
BETWEEN | vahemikus (min-max) |
LIKE | midagi nagu |
Kõige kõrgem vanus andmebaasis Isik:
SELECT max (vanus) from "Isik";
Leia kõik isikud, kelle eesnimi algab A-ga. Tõstutundlik.
SELECT * from "Isik" WHERE eesnimi LIKE ' A% ';