You are on page 1of 3

Baze podataka - Test 3

Ime i prezime: ______________________________, Indeks: ______________

Rijeite zadatke i ispod svakog zadatka prepiite SQL naredbu (ili naredbe) kojima ste rijeili zadatak. 1. Zadatak: Pod vaim korisnikim nalogom kreirajte tabelu sa nazivom TABC i poljima: ID, numeriko polje, primarni klju BR, numeriko polje IME, tekstualno polje (ne oekuje se vie od 10 karaktera) DATUM, datumsko polje Dodijelite korisniku MILOS pravo pregleda tabele i upisa novih podataka u tabelu.

2. Zadatak: Podrazumijevajmo da polje IME treba biti uneseno velikim slovima. Kreirajte triger koji e prije umetanja novih podataka (ili promjene postojeih) osigurati da IME uvijek bude ispisano velikim slovima. Koristite ORACLE funkciju UPPER(tekst). Provjera: U tabelu umetnite najmanje dva reda sa proizvoljnim podacima i malim slovima u imenu.

3. Zadatak: Kreirajte triger kojim e se pri unosu novih redova u tabelu TABC kod kojih nije definisan DATUM upisivati tekui datum. SYSDATE je ugraena ORACLE funkcija koja vraa tekui datum. Provjera: U tabelu umetnite najmanje tri reda sa proizvoljnim podacima sa izostavljenim datumom u dva sluaja i datumom 1.1.2010 u treem sluaju.

Mogua rjeenja zadataka Rijeite zadatke i ispod svakog zadatka prepiite SQL naredbu (ili naredbe) kojima ste rijeili zadatak. 1. Zadatak: Pod vaim korisnikim nalogom kreirajte tabelu sa nazivom TABC i poljima: ID, numeriko polje, primarni klju BR, numeriko polje IME, tekstualno polje (ne oekuje se vie od 10 karaktera) DATUM, datumsko polje Dodijelite korisniku MILOS pravo pregleda tabele i upisa novih podataka u tabelu. CREATE TABLE tabc ( ID NUMBER PRIMARY KEY, BR NUMBER, IME VARCHAR2(10), DATUM DATE ); GRANT SELECT, INSERT ON tabc TO MILOS; 2. Zadatak: Podrazumijevajmo da polje IME treba biti uneseno velikim slovima. Kreirajte triger koji e prije umetanja novih podataka (ili promjene postojeih) osigurati da IME uvijek bude ispisano velikim slovima. Koristite ORACLE funkciju UPPER(tekst). Provjera: U tabelu umetnite najmanje dva reda sa proizvoljnim podacima i malim slovima u imenu. CREATE OR REPLACE TRIGGER tr_tabc BEFORE INSERT OR UPDATE ON tabc FOR EACH ROW BEGIN :new.ime:=UPPER(:new.ime); END / Umetanje redova: INSERT INTO tabc VALUES(1,100,'mala','31-DEC-2008'); INSERT INTO tabc VALUES(2,120,'SloVA','1-DEC-2008'); Provjera: SELECT * FROM tabc

3. Zadatak: Kreirajte triger kojim e se pri unosu novih redova u tabelu TABC kod kojih nije definisan DATUM upisivati tekui datum. SYSDATE je ugraena ORACLE funkcija koja vraa tekui datum. Provjera: U tabelu umetnite najmanje tri reda sa proizvoljnim podacima sa izostavljenim datumom u dva sluaja i datumom 1.1.2010 u treem sluaju. CREATE OR REPLACE TRIGGER tr2_tabc BEFORE INSERT ON tabc FOR EACH ROW BEGIN IF (:new.datum IS NULL) THEN :new.datum:=SYSDATE; END IF; END / Provjera (zadatak je rjeavan 4.11.2010): INSERT INTO tabc(id,br,ime) VALUES(3,150,'alfa'); INSERT INTO tabc(id,br,ime) VALUES(4,150,'beta'); INSERT INTO tabc(id,br,ime,datum) VALUES(7,350,'beta','1-jan-2010'); SELECT * FROM tabc ID 1 3 2 4 7 BR 100 150 120 150 350 IME MALA ALFA SLOVA BETA BETA DATUM 31-DEC-08 04-NOV-10 01-DEC-08 04-NOV-10 01-JAN-10

You might also like