Ограничавање броја врста резултата (LIMIT)¶
Резултат упита често може да садржи велики број редова, који нам нису
сви одмах потребни. Често желимо да прикажемо само део резултата (на
пример, уместо да се у веб-апликацији на једној страни прикажу сви
ученици у школи, могуће је поделити приказ тако да се на свакој страни
приказује само одређен број ученика). У језику SQL то се може постићи
клаузулом LIMIT
. Ако се користи у облику LIMIT n
тада се из
резултата издваја само првих n
врста (ако је n
веће од укупног
броја врста резултата упита, не пријављује се грешка, већ се приказује
цео резултат упита).
Приказати податке о прва три ученика из табеле ученика.
SELECT *
FROM ucenik
LIMIT 3;
Извршавањем упита добија се следећи резултат:
id |
ime |
prezime |
pol |
datum_rodjenja |
razred |
odeljenje |
---|---|---|---|---|---|---|
1 |
Петар |
Петровић |
м |
2006-07-01 |
1 |
1 |
2 |
Милица |
Јовановић |
ж |
2006-04-03 |
1 |
1 |
3 |
Лидија |
Петровић |
ж |
2006-12-14 |
1 |
1 |
Овај упит можемо да прочитамо као:
Ако се користи у облику LIMIT start, n
тада се приказује n
врста, али не са почетка резултујуће табеле, него након првих start
редова. Исти ефекат се добија алтернативним записом LIMIT n OFFSET
start
.
Приказати податке о наредна 4 ученика из табеле ученика.
SELECT *
FROM ucenik
LIMIT 3, 4;
Извршавањем упита добија се следећи резултат:
id |
ime |
prezime |
pol |
datum_rodjenja |
razred |
odeljenje |
---|---|---|---|---|---|---|
4 |
Петар |
Миловановић |
м |
2005-12-08 |
2 |
1 |
5 |
Ана |
Пекић |
ж |
2005-02-23 |
2 |
1 |
6 |
Јован |
Миленковић |
м |
2006-04-07 |
1 |
2 |
7 |
Јована |
Миленковић |
ж |
2006-04-07 |
1 |
2 |
Овај упит можемо да прочитамо као:
Ограничавање броја врста резултата се често користи у комбинацији са
сортирањем. На тај начин је могуће пронаћи врсте које садрже најмањих
или највећих n
вредности колоне по којој се сортира.
Приказати податке о пет најмлађих ученика у школи.
SELECT *
FROM ucenik
ORDER BY datum_rodjenja DESC
LIMIT 5;
Извршавањем упита добија се следећи резултат:
id |
ime |
prezime |
pol |
datum_rodjenja |
razred |
odeljenje |
---|---|---|---|---|---|---|
12 |
Ана |
Анђелковић |
ж |
2007-04-23 |
1 |
2 |
74 |
Матео |
Молдован |
м |
2007-02-28 |
1 |
3 |
17 |
Теодора |
Вучковић |
ж |
2007-02-25 |
1 |
1 |
48 |
Коста |
Божић |
м |
2007-02-20 |
1 |
2 |
61 |
Елена |
Радивојевић |
ж |
2007-02-16 |
1 |
2 |
Клаузулом ORDER BY datum_rodjenja DESC
смо захтевали да се све
врсте уреде по датуму рођења, и то опадајући (тако да највећи,
тј. најновији датум буде први), а након тога смо клаузулом
LIMIT 5
издвојили само првих 5 врста резултата.
Вежба¶
Покушај да наредни упит напишеш самостално. Решење можеш да тестираш овде, а можеш задатак да урадиш и у систему SQLite Studio.
Приказати податке о десет последње направљених изостанака.