Садржај
2.8 SQL: Сложенији угњеждени упити - Додатно
3.0 SQL: Промена садржаја базе
3.2 SQL: Ажурирање података у табелама
3.3 SQL: Брисање података из табела
6.0 Библиотека Flask - пројектни задатак

Уписивање података

Унос нових редова у табеле се врши упитима типа INSERT. Њихов општи облик је следећи:

INSERT INTO tabela (kolona_1, ..., kolona_k)
VALUES (vrednost_1, ..., vrednost_k);

Након назива табеле наведеног иза кључних речи INSERT INTO наводе се називи колона, а затим се након кључне речи VALUES наводе вредности тих колона. Називи колона могу да се изоставе ако се након VALUES наведу вредности свих колона и то баш у редоследу колона у табели (тај редослед је одређен приликом креирања тј. дефинисања структуре табеле). Када експлицитно наведемо имена колона, не морамо да обраћамо пажњу на тај редослед, а упит остаје коректан и када се тај редослед промени. У случају да неке колоне имају постављене подразумеване вредности или ако се аутоматски увећавају (што је одређено опцијом AUTOINCREMENT), тада оне могу да се изоставе из упита INSERT.

Приликом извршавања упита INSERT врши се провера интегритета података и упис се врши само ако су услови интегритета испуњени. На пример:

  • не дозвољава се унос података погрешног типа,

  • не дозвољава се унос који би нарушио јединственост примарног кључа

  • не дозвољава се унос који би уместо примарног кључа имао недостајућу вредност,

  • не дозвољава се унос који би нарушио услове јединствености који су приликом креирања табеле наметнути као додатна ограничења,

  • не дозвољава се унос који би уписао недостајућу вредност у колону у којој су недостајуће вредности забрањене (NOT NULL),

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

Прикажимо употребу упита INSERT на неколико једноставних примера.

Унети у табелу ученика нову ученицу одељења II1. Она се зове Зденка Здолшек и рођена је 17. августа 2005. године.

Пошто идентификатор ученика има постављену опцију AUTOINCREMENT, уписаћемо вредности свих колона осим колоне id.

INSERT INTO ucenik (ime, prezime, pol, datum_rodjenja, razred, odeljenje)
VALUES ('Зденка', 'Здолшек', 'ж', '2005-08-17', 2, 1);

Аници Павловић из IV2 уписати петицу на контролној вежби из математике, коју је добила 1. октобра 2020. године.

У табелу „Оцене“ треба да унесемо јединствене идентификаторе ученице и предмета. Стога њих прво треба да прочитамо упитом SELECT.

SELECT id
FROM ucenik
WHERE ime = 'Аница' AND prezime = 'Павловић' AND razred = 4 AND odeljenje = 2;

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

id

293

SELECT id
FROM predmet
WHERE naziv = 'Математика' AND razred = 4;

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

id

9

Знајући вредности ових идентификатора, можемо да унесемо податке у табелу оцена.

INSERT INTO ocena (id_ucenik, id_predmet, datum, ocena, vrsta)
VALUES (293, 9, '2020-10-01', 5, 'контролна вежба');

Вежба

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

Унети у табелу предмета предмет под називом „Социологија“ који се у четвртом разреду предаје са 2 часа недељно.



Уписати ученику Петру Петровићу који има идентификатор 1 неоправдани изостанак на првом часу 10. маја 2021. године.



(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+