Садржај
1 Релационе базе података
1.0 1 Релационе базе података
1.0 2 Релационе базе података - квиз
1.0 3 Веза један према више
1.0 4 Веза један према више - квиз
1.0 5 Веза више према више
1.0 6 Веза више према више - квиз
1.0 7 Алат за пројектовање
1.0 8 СУБП
1.0 9 Креирање базе на други начин
1.0 10 Још неке SQL команде
1.1 1 Упит SELECT
1.1 2 Упит SELECT - упит из једне табеле - задаци
1.1 3 Упит SELECT - упит из једне табеле - квиз
1.1 4 Упит SELECT - функције и подупити - задаци
1.1 5 Упит SELECT - функције и подупити - квиз
1.1 6 Упит SELECT - спајање - задаци
1.1 7 Упит SELECT - спајање - квиз
1.1 8 Упит SELECT - нерешени задаци
1.2 1 База података за библиотеку - креирање базе
1.2 2 БП Библиотека - Упит SELECT - упит из једне табеле - задаци
1.2 3 БП Библиотека - Упит SELECT - упит из једне табеле - нерешени задаци
1.2 4 БП Библиотека - Упит SELECT - спајање - задаци
1.2 5 БП Библиотека - Упит SELECT - спајање - нерешени задаци
1.2 6 БП Библиотека - Упит SELECT - функције и подупити - задаци
1.2 7 БП Библиотека - Упит SELECT - функције и подупити - нерешени задаци
1.3 1 База података за возачке дозволе - креирање базе
1.3 2 БП Возачке дозволе - Дијаграм и подаци - практичан рад
1.3 3 БП Возачке дозволе - Упит SELECT - задаци
1.3 4 БП Возачке дозволе - Упит SELECT - нерешени задаци
1.4 1 БП Филмови - Креирање базе - практични рад
1.4 2 БП Филмови - Дијаграм и подаци - практични рад
1.4 3 БП Филмови - Упит SELECT - задаци
1.4 4 БП Филмови - Упит SELECT - нерешени задаци
2 Писање програма унутар система за управљање базама података
2.0 1 Процедуре и команда INSERT
2.0 2 Процедуре и команде UPDATE и DELETE
2.0 3 Процедуре и команде INSERT, UPDATE, и DELETE - квиз
2.0 4 Процедуре и тестирање програма
2.0 5 Процедуре и упит SELECT
2.0 6 Процедуре и курсор за упит SELECT
2.1 1 Функције и упит SELECT
2.1 2 Процедуре и функције са упитом SELECT - квиз
2.1 3 Процедуре и функције са упитом SELECT из једне табеле - задаци
2.1 4 Процедуре и функције са упитом и групним функцијама - задаци
2.1 5 Процедуре и функције са упитом SELECT са спајањем табела - задаци
2.1 6 Процедуре и функције са упитом - нерешени задаци
2.1 7 Формат XML
2.2 1 База података за библиотеку - Процедуре, функције и поређење различитих решења
2.2 2 Процедуре, функције и поређење различитих решења
2.2 3 Процедуре и функције са упитом SELECT из једне табеле - вежбање
2.2 4 Процедуре и функције са упитом SELECT са спајањем табела - вежбање
2.2 5 Процедуре и функције са упитом и групним функцијама и подупитима - вежбање
2.2 6 Процедуре и функције са упитом SELECT - нерешени задаци
2.3 1 База података за возачке дозволе - процедуре и функције са упитом SELECT - вежбање
2.3 2 База података за возачке дозволе - процедуре и функције - нерешени задаци
2.4 1 База података за филмове - процедуре и функције са упитом SELECT - вежбање
2.4 2 База података за филмове - процедуре и функције - нерешени задаци
3 Писање програма у програмским језицима вишег нивоа
3.0 1 Писање програма у развојном окружењу Visual Studio
3.0 2 Писање програма у развојном окружењу Visual Studio - практичан рад
3.0 3 Писање програма у развојном окружењу Visual Studio - процедуре
3.0 4 Писање програма у развојном окружењу Visual Studio - квиз
3.1 1 Угнежђени упит SELECT унутар програма
3.1 2 Угнежђени упит SELECT унутар програма - задаци
3.1 3 Позив процедуре унутар програма
3.1 4 Позив креиране функције унутар програма
3.1 5 Програм са угнежђеним командама у развојном окружењу Visual Studio - квиз
3.1 6 Програм са угнежђеним упитом SELECT из једне табеле - вежбање
3.1 7 Програм са угњежђеним упитом и групним фунцкијама - вежбање
3.1 8 Програм са угнежђеним упитом SELECT са спајањем табела - вежбање
3.1 9 Програм са класом
3.1 10 Програм са угнежђеним упитом - нерешени задаци
3.1 11 Програм са угнежђеним командама INSERT, UPDATE, и DELETE
3.2 1 База података за библиотеку - програм са угнежђеним упитом SELECT из једне табеле - задаци
3.2 2 База података за библиотеку - програм са угнежђеним упитом SELECT - вежбање
3.2 3 База података за библиотеку - програм са угнежђеним упитом - нерешени задаци
3.3 1 База података за возачке дозволе - програм са угнежђеним упитом SELECT - вежбање
3.3 2 База података за возачке дозволе - програм са угнежђеним упитом - нерешени задаци
3.4 1 База података за филмове - програм са угнежђеним упитом SELECT - вежбање
3.4 2 База података за филмове - програм са угнежђеним упитом - нерешени задаци
4 Друга софтверска решења - СУБП Oracle
4.0 1 Oracle Apex и језик PL/SQL
4.0 2 Језик PL/SQL - задаци
4.0 3 Језик PL/SQL - квиз
4.0 4 Језик PL/SQL – нерешени задаци
4.0 5 Наредбе гранања
4.0 6 Наредбе гранања - нерешени задаци
4.0 7 Наредбе циклуса
4.0 8 Наредбе циклуса - нерешени задаци
4.1 1 База података за библиотеку - практичан рад
4.1 2 Наредба SELECT INTO
4.1 3 Наредба SELECT INTO - zadaci
4.1 4 Наредба SELECT INTO - квиз
4.1 5 Наредба SELECT INTO - вежбање
4.1 6 Наредба SELECT INTO - нерешени задаци
4.2 1 Курсори - Узимање података из више редова
4.2 2 Курсори - задаци
4.2 3 Различити начини да се реши проблем
4.2 4 Курсори - нерешени задаци
4.2 5 Курсор са параметром
4.2 6 Курсор са параметром - задаци
4.2 7 Курсор са параметром - нерешени задаци
4.2 8 Курсори - квиз
4.2 9 Курсори и гранање - задаци
4.2 10 Курсори - вежбање
4.2 11 Тренутне позајмице члана - пример
4.2 12 Спискови књига - пример
4.3 1 Процедуре и функције у СУБП-у Oracle Apex
4.3 2 Процедуре и функције - задаци
4.3 3 Процедуре и функције - нерешени задаци
4.3 4 Позајмице једне књиге - пример
4.3 5 Тренутне позајмице - пример
4.3 6 Процедуре и друге SQL команде
4.3 7 Тригери
4.3 8 Списак свих објеката у бази података
4.4 1 Креирање апликације помоћу алата App Builder
4.4 2 Додатне опције App Builder алата
4.4 3 Покретање апликације
4.4 4 Креирање нових страница у апликацији
4.4 5 Покретање раније креиране процедуре
4.4 6 Алат App Builder и XML
4.5 1 База података за салон аутомобила у СУБП-у Oracle Apex - 1. део
4.5 2 База података за салон аутомобила у СУБП-у Oracle Apex - 2. део
4.5 3 База података за салон аутомобила у СУБП-у Oracle Apex - 3. део
4.5 4 База података за продавницу - нерешени пројектни рад

Процедуре и друге SQL команде

До сада смо највише пажње посветили упиту SELECT од свих команди упитног језика SQL. Ово је потпуно оправдано јер управо помоћу ове команде ефикасно добијамо корисне информације из података које чувамо у бази. Складиштење великих количина података није било немогуће и пре појаве дигиталних технологија, али је значај релационих база података управо у брзини и прецизности којом можемо да обрађујемо податке које чувамо.

Наравно, у процедурама и функцијама можемо да користимо и друге команде упитног језика SQL. Као илустрација, следи неколико пробраних примера процедура у којима се користе команде INSERT и UPDATE.

Програми се пишу у едитору у оквиру онлајн окружења Oracle APEX, а покрећу се кликом на дугме Run:

Сви примери PL/SQL програма који следе раде са подацима из базе података библиотеке, и то са три табеле.

clanovi(broj_clanske_karte, ime, prezime, adresa, telefon, mejl_adresa)

zaposleni(id, ime, prezime, mejl, datum_zaposlenja, plata, id_menadzera)

izdavaci(id, naziv, adresa, veb_sajt

Написаћемо процедуру која служи да се измени број телефона члана у бази података када члан промени број телефона. Као улазне параметре процедура треба да има број чланске карте и нови телефон. Следи комплетан програмски код процедуре.

CREATE OR REPLACE PROCEDURE
    izmena_tel_clana(p_broj_clanske_karte clanovi.broj_clanske_karte%TYPE,
    p_novi_tel clanovi.telefon%TYPE)
    IS
BEGIN
    UPDATE clanovi
    SET telefon = p_novi_tel
    WHERE broj_clanske_karte = p_broj_clanske_karte;
END

Сетимо се како је изгледала команда којом смо у табелу clanovi унели податке о члану са бројем чланске карте 11. Можемо да видимо да је телефон био 061-111-111.

INSERT INTO clanovi
VALUES (11, 'Milica', 'Zoranovic', 'Dunavska 22, Beograd', '061-111-111', null);

Процедуру позивамо у PL/SQL програму.

BEGIN
    izmena_tel_clana(11, 'O14-444-444');
END

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

SELECT telefon FROM clanovi WHERE broj_clanske_karte = 11
../_images/slika_96a.jpg

У једној процедури можемо да имамо и више команди. Рецимо да треба да се уради корекција плата и да се у сваком тиму менаџеру смањи плата за одређени проценат, а свим запосленим у том тиму да се плата повећа за исти проценат. Процедура ће имати две команде UPDATE.

CREATE OR REPLACE PROCEDURE
    promena_plata_tima(p_id_menadzera zaposleni.id%TYPE, p_procenat INT)
    IS
BEGIN
    UPDATE zaposleni
    SET plata = plata * (100 - p_procenat)/100
    WHERE id = p_id_menadzera;
    UPDATE zaposleni
    SET plata = plata * (100 + p_procenat)/100
    WHERE id_menadzera = p_id_menadzera;
END

Следи пример процедуре у којој имамо команду INSERT. Процедура омогућава да се унесе нови издавач са датим идентификационим бројем и називом.

CREATE OR REPLACE PROCEDURE
novi_izdavac(p_id izdavaci.id%TYPE, p_naziv izdavaci.naziv%TYPE)
IS
BEGIN
    INSERT INTO izdavaci
    VALUES (p_id, p_naziv, null, null);
END

Процедуру позивамо у PL/SQL програму.

BEGIN
    novi_izdavac(9, 'TASCHEN');
END

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

SELECT * FROM izdavaci
(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+