Садржај
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: Брисање података из табела
Брисање података
Брисање података - квиз

Логички оператори (AND, OR, NOT)

Више логичких услова могуће је повезати уобичајеним логичким операторима:

  • Оператор AND означава конјункцију, тј. логичко и.

  • Оператор OR означава дисјункцију, тј. логичко или.

  • Оператор NOT означава негацију, тј. логичко не.

Прикажимо њихову употребу на неколико примера упита.

Приказати све податке о ученицима одељења I2 (првог два).

SELECT *
FROM ucenik
WHERE razred = 1 AND odeljenje = 2;

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

id

ime

prezime

pol

datum_rodjenja

razred

odeljenje

6

Јован

Миленковић

м

2006-04-07

1

2

7

Јована

Миленковић

ж

2006-04-07

1

2

12

Ана

Анђелковић

ж

2007-04-23

1

2

38

Ксенија

Ђукић

ж

2007-02-15

1

2

39

Анабела

Лазаревић

ж

2006-07-08

1

2

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

ОДАБЕРИ све колоне
ИЗ РЕДОВА табеле ученика
КОД КОЈИХ је разред једнак 1 и одељење једнако 2

Приметимо да се у овом примеру захтева да ученик иде у први разред, као и да иде у друго одељење (пошто се тражи да су испуњени и први и други услов, употребљава се оператор AND).

На следећој слици може да се види како изгледа овај упит покренут у систему SQLite Studio. Види се само првих неколико редова и информација о томе да има укупно 33 реда који задовољавају постављен услов.

https://petljamediastorage.blob.core.windows.net/root/Media/Default/Kursevi/OnlineNastava/kurs-gim-cetvrti-drustveni-inf/12_razred.png

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

Нагласимо да је могуће да постоји више ученика који имају исто име и презиме.

SELECT *
FROM ucenik
WHERE ime = 'Петар' AND prezime = 'Петровић';

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

id

ime

prezime

pol

datum_rodjenja

razred

odeljenje

1

Петар

Петровић

м

2006-07-01

1

1

Структура овог упита је веома слична оном претходном (потребно је да су задовољена оба наведена услова).

Приказати све податке о ученицима који иду у непарну смену (то су ученици који иду у први и ученици који иду у трећи разред).

SELECT *
FROM ucenik
WHERE razred = 1 OR razred = 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

6

Јован

Миленковић

м

2006-04-07

1

2

7

Јована

Миленковић

ж

2006-04-07

1

2

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

ОДАБЕРИ све колоне
ИЗ РЕДОВА табеле ученика
КОД КОЈИХ је разред једнак 1 или је разред једнак 3

У овом примеру је довољно да је задовољен било који од два наведена услова (подаци о ученику се приказују било да иде у први, било да иде у трећи разред), па се користи оператор OR.

На екскурзију у октобру иду сви ученици, осим ученика првог разреда. Приказати њихова имена и презимена.

Тражи се списак ученика код којих је разред различит од 1. Задатак можемо да решимо применом оператора NOT.

SELECT *
FROM ucenik
WHERE NOT (razred = 1);

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

id

ime

prezime

pol

datum_rodjenja

razred

odeljenje

4

Петар

Миловановић

м

2005-12-08

2

1

5

Ана

Пекић

ж

2005-02-23

2

1

8

Гордана

Сарић

ж

2005-01-03

2

1

9

Вања

Савић

м

2004-11-13

3

1

10

Николина

Јовановић

ж

2004-08-03

3

1

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

ОДАБЕРИ све колоне
ИЗ РЕДОВА табеле ученика
КОД КОЈИХ разред није једнак 1

Ипак, још једноставније решење је да се употреби оператор различито !=.

SELECT *
FROM ucenik
WHERE razred != 1;

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

id

ime

prezime

pol

datum_rodjenja

razred

odeljenje

4

Петар

Миловановић

м

2005-12-08

2

1

5

Ана

Пекић

ж

2005-02-23

2

1

8

Гордана

Сарић

ж

2005-01-03

2

1

9

Вања

Савић

м

2004-11-13

3

1

10

Николина

Јовановић

ж

2004-08-03

3

1

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

И у овом случају можемо да употребимо оператор NOT.

SELECT *
FROM ucenik
WHERE NOT (ime = 'Петар') AND prezime = 'Петровић';

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

id

ime

prezime

pol

datum_rodjenja

razred

odeljenje

3

Лидија

Петровић

ж

2006-12-14

1

1

47

Душанка

Петровић

ж

2006-09-28

1

2

112

Тамара

Петровић

ж

2005-05-29

2

1

126

Марија

Петровић

ж

2005-03-27

2

2

285

Илија

Петровић

м

2003-10-27

4

1

Задатак може да се реши и помоћу оператора различито.

SELECT *
FROM ucenik
WHERE ime != 'Петар' AND prezime = 'Петровић';

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

id

ime

prezime

pol

datum_rodjenja

razred

odeljenje

3

Лидија

Петровић

ж

2006-12-14

1

1

47

Душанка

Петровић

ж

2006-09-28

1

2

112

Тамара

Петровић

ж

2005-05-29

2

1

126

Марија

Петровић

ж

2005-03-27

2

2

285

Илија

Петровић

м

2003-10-27

4

1

Вежба

Покушај сада да самостално решиш наредни задатак.

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



Претходна лекција
Следећа лекција
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.