Садржај
1.0 Базе: Увод у базе података
Шта су базе података?
Табеларна организација података
Повезане табеле
Базе и табеле - квиз
1.1 Базе: SQLite
SQLite и SQLite Studio
Креирање базе у SQLite Studio
SQLite и SQLite Studio - квиз
Креирање базе у SQLite Studio - задаци за вежбу
1.2 Базе: Дизајнирање базе података
База компаније за продају дигиталних композиција - подаци о композицијама
База компаније за продају дигиталних композиција - подаци о продаји
Дизајнирање базе података - квиз
2.0 - SQL: Читање података из базе
SQL: Читање података из табела
Читање података - квиз
2.1 SQL: Пројекција и селекција
Пројекција
Селекција
Пројекција и селекција - квиз
Пројекција и селекција - задаци (дневник)
2.2 SQL: Логички и релацијски оператори
Логички оператори
Релацијски оператори
Оператори - квиз
Оператори - задаци (дневник)
2.3 SQL: Изрази и функције - Додатно
Изрази
Функције
Изрази и функције - квиз
Изрази и функције - задаци (дневник)
2.4 SQL: Сортирање, уклањање дупликата, ограничавање броја врста
Сортирање
Ограничавање броја врста у резултату
Уклањање дупликата
Сортирање, уклањање дупликата, ограничавање одговора - квиз
Сортирање и ограничавање - задаци (дневник)
2.5 SQL: Агрегатне функције и груписање
Агрегатне функције
Груписање и израчунавање статистика појединачних група
Селекција након груписања
Агрегатне функције и груписање - квиз
Агрегатне функције и груписање - задаци (дневник)
2.6 SQL: Спајање табела
Спајање табела
Имплицитно спајање
Спајање и груписање
Врсте спајања
Спајање табела - квиз
Спајање - задаци (дневник)
2.7 SQL: Угнежђени упити
Угнежђени упити
Угнежђени упити - квиз
Угнежђени упити - задаци (дневник)
2.8 SQL: Сложенији угњеждени упити - Додатно
Корелисани подупити
Провера постојања
2.9 SQL: Погледи
Погледи
Погледи - квиз
Погледи - задаци (дневник)
3.0 SQL: Промена садржаја базе
Измене података у бази
3.1 SQL: Уписивање података у табеле
Уписивање података
Уписивање података прочитаних из базе
Уписивање података - квиз
3.2 SQL: Ажурирање података у табелама
Ажурирање података
Ажурирање података - квиз
3.3 SQL: Брисање података из табела
Брисање података
Брисање података - квиз

Сортирање (ORDER BY)

Често се јавља потреба да податке прикажемо у одређеном редоследу. Потребан редослед можемо да добијемо додавањем клаузуле ORDER BY у упит SELECT. У клаузули ORDER BY се наводи једна (или више) колона, на основу којих се врши сортирање врста резултата.

Приказати списак свих предмета, уређен по разреду у ком се предају.

SELECT *
FROM predmet
ORDER BY razred;

Извршавањем упита добија се следећи резултат:

id

naziv

razred

fond

1

Математика

1

4

2

Српски језик

1

4

3

Рачунарство и информатика

1

2

6

Физика

1

2

12

Енглески језик

1

2

Сортирање се, наравно, лако комбинује са пројекцијом и селекцијом. Такође, сортирање може да се примени и на типове података који нису бројеви (на датуме, ниске…).

Приказати имена, презимена и датуме рођења свих ученика одељења првог један, уређене неопадајуће по датуму рођења (од најстаријих до најмлађих ђака).

SELECT ime, prezime, datum_rodjenja
FROM ucenik
WHERE razred = 1 AND odeljenje = 1
ORDER BY datum_rodjenja;

Извршавањем упита добија се следећи резултат:

ime

prezime

datum_rodjenja

Милица

Јовановић

2006-04-03

Огњен

Стојановић

2006-04-23

Александра

Гајин

2006-04-24

Војин

Милошевић

2006-04-30

Ивана

Пејчев

2006-05-13

Овај упит можемо да прочитамо као:

ОДАБЕРИ име, презиме и датум рођења
ИЗ РЕДОВА табеле ученика
КОД КОЈИХ је разред једнак 1 и одељење једнако 1
У РЕДОСЛЕДУ датума рођења

Ако се жели обратан редослед сортирања (нерастући), тада се након имена колоне може навести DESC. Могуће је навести и ASC чиме се наглашава да је редослед неопадајући, међутим, пошто је тај редослед подразумеван, ово се често изоставља.

Приказати имена, презимена и датуме рођења свих ученика одељења I1 првог један, уређене нерастући по датуму рођења (од најмлађих до најстаријих ђака).

SELECT ime, prezime, datum_rodjenja
FROM ucenik
WHERE razred = 1 AND odeljenje = 1
ORDER BY datum_rodjenja DESC;

Извршавањем упита добија се следећи резултат:

ime

prezime

datum_rodjenja

Теодора

Вучковић

2007-02-25

Даница

Анђелковић

2007-02-11

Анита

Урошевић

2007-02-05

Елена

Ђурђевић

2007-01-16

Анђелија

Богдановић

2007-01-16

Ако је у клаузули ORDER BY наведено више колона, тада се поређење врши прво по првој колони, ако су вредности у првој колони једнаке, поређење се врши по другој колони, ако су вредности и у другој колони једнаке, поређење се врши по трећој колони итд.

Приказати све податке о ученицима у азбучном редоследу презимена и имена.

SELECT prezime, ime
FROM ucenik
ORDER BY prezime ASC, ime ASC;

Извршавањем упита добија се следећи резултат:

prezime

ime

Алексић

Магдалена

Анђелковић

Ана

Анђелковић

Даница

Анђелковић

Магдалена

Антић

Бранко

Пошто су у клаузули ORDER BY наведене две колоне prezime, па ime, сортирање се прво врши по презименима, а ако су презимена једнака, онда се врши по именима. ASC означава да се сортирање обе колоне врши у неопадајућем редоследу (и може да се изостави). Нагласимо да је за сортирање по азбучном реду јако важно да су у колонама ime и prezime подешене одговарајуће колационе секвенце.

Вежба

Наредних неколико упита напиши самостално. Решења можеш да тестираш овде, а можеш све задатке да урадиш и у систему SQLite Studio.

Прикажи све податке о предметима првог разреда у нерастућем редоследу фонда часова.



Прикажи све податке о изостанцима тако да су прво наведени неоправдани, па нерегулисани, па оправдани, при чему су у свакој категорији изостанци поређени по датуму када су направљени, а за оне направљене истог датума по часу на ком су направљени.



Претходна лекција
Следећа лекција
A- A+
Тема
Темa

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.