You are on page 1of 44

Normalizacija

• Када податке чувамо у фасциклама, обично
имамо велики број поновљених ставки. Тако,
када на пример као продавци чувамо податке о
наруџбама, имаћемо евиденцију о купцима,
поруџбеницама и копије рачуна. У тим
папирима се подаци о купцу понављају три
пута а подаци о купљеним ставкама два пута.
Ако се у рачунару формира база података
стриктно према описаној форми, имали бисмо
исто понављање података.

Normalizacija
• Треба имати у виду да није у питању само штедња
простора. Већи проблем представља одржавање
интегритета података - ако у случају са дуплираним
подацима треба да извршимо неку измену - рецимо
измену адресе купца, морамо водити рачуна да ту
измену унесемо на три места - у евиденцији купаца, у
евиденцији поруџбина и евиденцији рачуна. Ова појава
дуплирања података у бази се обично назива
редунданца и по правилу се приликом пројектовања
структуре базе избегава

Normalizacija
• Овај проблем се у релационој бази решава тако, што се
адреса са осталим подацима о купцима чувала само у
једној табели, подаци о поруџбинама (без адресе и
осталих података о купцима) у другој табели, а подаци
о испорукама и рачунима у трећој.
• Процес преструктуирања података ради избегавања
редунданце се назива нормализација. Основа за
нормализацију је функционална зависност. Ту се
подразумева груписање ставки у табеле на начин који
ће обезбедити релацију "један према један" између
појединих ставки. Тако на пример, у табели "Kupci",
име и презиме, као и адреса купца су функционално
зависни од атрибута "број купца" (kupac_br). Другим
речима, имамо само једну вредност “ime", “prezime" и
"аdresu" купца за један дати “broj kupca".

Normalizacija
• Процес нормализације се своди на растављање
сложене релације (табеле) у мање релације (табеле)
које ће у сваком кораку бити у вишој нормалној форми.
• До данас је формално дефинисано пет нормалних
форми. Углавном се при креирању база података само
прве три практично користе. Свака виша нормална
форма задовољава услове за нижу - тако на пример,
релација која је у трећој нормалној форми, аутоматски
је и у првој и другој нормалној форми. Обрнуто не
важи, тј. релација која је у првој нормалној форми,
биће и у другој нормалној форми само ако задовољи
тест за другу нормалну форму.

"име купца" и слично.Normalizacija .дуплирање података .12. Пример: narucba_br 1001 1001 kupac_br datum_nar 101 1.12. .91 adresa_por Beograd Beograd stavka_br opis 12345 cipele 12346 patike kolicina cena_ukup 100 200. у табелама које су у првој нормалној форми може се појавити редунданца .000 Као што се из горњег примера види. јединствену вредност као што је на пример "број купца". тј.Прва нормална форма (1НФ) Тест за прву нормалну форму представља проверу да ли сваки атрибут у релацији (колона у табели) има "атомизирану" вредност.91 101 1.000 200 300.

Свака вредност кључа мора јединствено идентификовати ред у табели а сваки не-кључни атрибут мора зависити од кључа. Тако на пример. У претходном примеру јасно је да ови услови нису задовољени. која је у првој нормалној форми уједно и у другој нормалној форми зависи од идентификације кључног атрибута у релацији (табели). Такође.Normalizacija –друга нормална форма (2НФ) Тест којим се проверава да ли је табела. “kolicina" и “cena_ukup" зависе од комбинације “narucba_br" и “stavka_br". “opis" практично зависи од шифре ставке (“stavka_br") .

000 300.000 opis cipele patike У табели “Narucbe" кључ је поље “narucba_br".Normalizacija –друга нормална форма (2НФ) Према павилима за другу нормалну форму треба извршити декомпозицију на следећи начин: Tabela Narucbe narucba_br 1001 kupac_br 101 Tabela Narucbe .91 kolicina 100 200 adresa_pos Beograd cena_ukup 200. кључ табеле “Narucbe .Stavke narucba_br stavka_br 1001 12345 1001 12346 Tabela Stavke stavka_br 12345 12346 • • datum_nar 1. што би се десило уколико би се иста ставка појавила у једној или више наручби .stavke" је комбинација поља “narucba_br" и “stavka_br" док је кључ у трећој табели поље “stavka_br".12. Разлог за раздвајање групе података у другој и трећој табели је да би се избегла редунданца услед понављања описа.

Да би се задовољио услов за трећу нормалну форму.12. прву табелу треба поделити на следећи начин: Tabela Narucbe narucba_br kupac_br 1001 101 Tabela Kupci kupac_br 101 adresa_pos Beograd datum_nar 1. Када погледамо претходне три табеле. не сме постојати никаква зависност између некључних атрибута.91 . видећемо да у првој постоји зависност података о адреси пошиљке од идентификационог броја купца (зависност “adresa_pos" од “kupac br").Normalizacija –трећа нормална форма (3НФ) Да би табела која је у другој нормалној форми задовољила и трећу нормалну форму.

Normalizacija – трећа нормална форма (3НФ) • Као што је напоменуто. Из наведеног примера се види да даља декомпозиција практично није могућа. из практичних разлога сигурно није згодно због тога адресу делити у две табеле. • Нормализација базе је само један део процеса пројектовања базе који треба да обухвати и многе друге анализе. У сваком случају.функционалне зависности се често могу различито тумачити зависно од практичних потреба. у пракси се најчешће декомпозиција завршава на нивоу треће нормалне форме. • Треба такође напоменути да примена наведених правила у великој мери зависи од конкретног случаја . поштански број и назив града су функционално зависни. . На пример у случају адресе. Често је потребно имати у виду и податке из других процеса који нису директно обухваћени базом. међутим. врло је корисно развој базе података посматрати као динамички процес којим ће се база континуално усавршавати у складу са потребама.

Upitni strukturni jezik SQL • Mogu ga koristiti krajnji korisnici • Interaktivo definisanje BP (DDL) • Manipulacija podacima (DML). Stampanje izvestaja • AD-HOCK postavljanje pitanja • ANSII standard • Razvoj aplikacije ne zavisi od platforme .

] FROM tabela SELECT SIFRAO. MESTO FROM ODELJENJE SIFRAO 10 20 30 40 NAZIVO PRIPREMA RAZVOJ PRODAJA PROIZVODNJA MESTO PANCEVO N_SAD BEOGRAD PAZOVA SELECT * FROM RADNIK SIFRARPREZIME IME SI JMBG RUKOV DATUMZPLATASTIMUSI PO VR ZAPOSLEN : L 20 FR ML 2 ST 827369STEVIC ZORAN 01 1411952171033 82790228/03/98 8000 600 JA: 16000SSS 827499ALAGIC MILAN FR 02 2503964345612 82769828/03/98 600AO 30 M A: 827521VUKIC MILOS AR 02 1130497055432 82769828/03/98 12500 60030 M 2 827566JOVIC MIRA M: 03 1130497056435 82783928/04/90 29750 70020 Z 1 827654MARTIC ZORA 02 1140496055444 82769812/06/88 12500100030 Z 1 827698BOBIC IVAN 03 1405987055455 82783915/11/89 28500 80030 M 2 827782CEBIC GORAN 03 1203970654566 82783911/06/80 24500 50010 M 2 827788SUSIC ZORAN 04 1304954676755 82756623/10/91 30000 65020 M 2 827839KLJAKICSTEVAN05 1312952122344 82783906/12/87 50000 600 10 M 2 827844TUBIC MIRA 02 1312954342122 82769808/03/78 15000 60030 Z 1 827876ALIMPICPETAR 01 2503976343566 82778809/05/92 11000 78020 M 827900JAKIC VLADAN01 1211965457231 82769828/03/90 9500 90030 M 827902FILIPICDRAGAN04 12109705342 2182756620/11/96 30000100020 M 2 827934MILIC DRAGAN01 0706956456465 82778228/03/93 13000 79010 M 2 .Upit nad jednom tabelom SELECT kolona [..kolona.. NAZIVO.

<=). <. >.. NOT IN).OR).Izbor specificikovanih redova klauzula WHERE SELECT [DISTINCT] kolona [. >=. nepoznate vrednosti (IS NULL i IS NOT NULL). .] FROM tabela [WHERE uslov_selekcije] Uslovi selekcije u WHERE klauzuli su:        operatori poređenja (kao što su =. liste (IN. operatori ranga (BETWEEN i NOT BETWEEN). uzorci (LIKE i NOT LIKE).. višestruki uslovi pretraživanja (AND.kolona.

Prezime. Sifrao FROM RADNIK WHERE SIFRAO = '30' Sifrar Prezime Ime Plata Sifrao 827499 ALAGIC MILAN 16000 30 827521 VUKIC MILOS 12500 30 827654 MARTIC ZORA 12500 30 827698 BOBIC IVAN 28500 30 827844 TUBIC MIRA 15000 30 827900 JAKIC VLADAN 9500 30 . Plata. Ime.Operatori poređenja SELECT Sifrar.

SELECT PREZIME.Operatori ranga BETWEEN Operator BETWEEN omogućava da se izaberu redovi koji sadrže vrednosti u nekom rasponu. a koje je korisnik specifikovao. PLATA FROM RADNIK WHERE PLATA BETWEEN 12000 AND 14000 PREZIME VUKIC MARTIC MILIC PLATA 12500 12500 13000 .

'30') WHERE SIFRAO = '10' OR SIFRAO = '30' 10 30 SIFRAO NAZIVO PRIPREMA PRODAJA MESTO PANCEVO BEOGRAD .Operatori za liste IN IN operator omogućava da se izaberu redovi koji sadrže vrednost koja je jednaka jednoj od vrednosti navedene liste SELECT * FROM ODELJENJE WHERE SIFRA0 IN ('10'. .

.Operatori za definisanje uzoraka LIKE Spisak svih radnika koji imaju " U " SELECT PREZIME FROM RADNIK WHERE PREZIME LIKE "?U*" PREZIME VUKIC SUSIC TUBIC kao drugo slovo u prezimenu.

Prezime Ime ALAGIC MILAN ALIMPIC PETAR JAKIC VLADAN Vrsta .Definisanje nepoznatih vrednosti IS NULL Spisak svih radnika kojima nije definisana kolona Vrsta.Ime.Vrsta FROM RADNIK WHERE VRSTA IS NULL. SELECT Prezime.

SELECT PREZIME.Višestruki uslovi pretraživanja AND Lista DIREKTORA (03). SIFRARM. PLATA FROM RADNIK WHERE SIFRARM = '03' AND PLATA > 28000 PREZIME SIFRARM PLATA JOVIC 03 29750 BOBIC 03 28500 . koju zarađuju više od 28000 dinara.

PLATA FROM RADNIK WHERE SIFRARM ='03' OR PLATA > 28000 PREZIME JOVIC BOBIC CEBIC SUSIC KLJAKIC FILIPIC SIFRARM 03 03 03 04 05 04 PLATA 29750 28500 24500 30000 50000 30000 . ili svih onih koji zara|uju više od 28000 dinar SELECT PREZIME. SIFRARM.Višestruki uslovi pretraživanja OR Lista DIREKTORA (03).

PLATA+STIMUL AS UKUPNO FROM RADNIK WHERE SIFRARM = '02' PREZIME ALAGIC VUKIC MARTIC TUBIC PLATA STIMUL UKUPNO 16000 600 16600 12500 600 13100 12500 1000 13500 15000 600 15600 .STIMUL.STIMUL. stimulaciju i sumu plate i stimulacije za sve Radnike sa SIFRARM= '02' SELECT PREZIME.PLATA+STIMUL FROM RADNIK WHERE SIFRARM = '02' SELECT PREZIME.PLATA. platu.Izračunavanje vrednosti u SELECT listi Treba izlistati prezime.PLATA.

SIFRARM..Sortiranje redova pomoću ORDER BY klauzule ORDER BY klauzula kontroliše redosled prikazivanja redova SELECT [DISTINCT] kolona [.kolona. PREZIME FROM RADNIK WHERE SIFRAO= '30' ORDER BY PLATA 9500 12500 12500 15000 16000 28500 01 02 02 02 02 03 JAKIC MARTIC VUKIC TUBIC ALAGIC BOBIC .] FROM tabela [WHERE uslov-selekcije] ORDER BY (izraz|pozicija)[ASC | DESC] PLATA SIFRARM PREZIME SELECT PLATA..

kolona. umesto na celu tabelu.] FROM tabela [WHERE uslov-selekcije] [GROUP BY izraz {.Korišćenje GROUP BY klauzule GROUP BY klauzula logički deli tabelu na grupe n-torki tako da u okviru jedne grupe sve n-torke imaju istu vrednost zadate kolone. SELECT [DISTINCT] kolona [... MAX (PLATA) FROM RADNIK GROUP BY SIFRAO Rezultat SQL upita je: SIFRAO 10 20 30 MAX (PLATA) 50000 30000 28500 .izraz}] ORDER BY (izraz|pozicija)[ASC | DESC] SELECT SIFRAO. Ovim se omogućuje da funkcije za dobijanje sumarnih informacija budu primenjene na svaku ovakvu grupu posebno.

SELECT SIFRARM. COUNT (*) FROM RADNIK WHERE PLATA > 25000 GROUP BY SIFRARM. Rezultat SQL upita je: Sifrarm 03 04 05 AVG (PLATA) 29125 30000 50000 COUNT (*) 2 2 1 . AVG (PLATA).Korišćenje GROUP BY u okviru WHERE klauzule Kada se koristi GROUP BY u okviru WHERE klauzule onda se redovi koji ne zadovoljavaju uslov u okviru WHERE klauzule eliminišu pre grupisanja.

Rezultat SQL upita je: Sifrarm: 01 02 03 04 05 AVG (PLATA) 10375 14000 27583 30000 50000 .Korišćenje kombinacije GROUP BY i ORDER BY klauzula SELECT SIFRARM. AVG (PLATA) FROM RADNIK GROUP BY SIFRARM ORDER BY AVG (PLATA).

Korišćenje HAVING klauzule Klauzula HAVING ima zadatak SELECT [DISTINCT] kolona [.. AVG (PLATA) FROM RADNIK GROUP BY SIFRAO HAVING COUNT (*) > 3.] FROM tabela da [WHERE uslov-selekcije] specificira uslove pretra`ivanja[GROUP BY izraz {.kolona..izraz}] [HAVING grupni uslov] u ORDER BY (izraz|pozicija)[ASC | DESC] okviru GROUP BY klauzule. SELECT SIFRAO. Treba prikazati šifru odeljenja i srednju aritmetičku vrednost za odeljenje koje ima više od tri zaposlena radnika u odeljenju korišćenjem HAVING klauzule.2 . Sifrao AVG (PLATA) 20 18125.

066 SELECT MAX (PLATA) FROM RADNIK WHERE SIFRARM='02' MAX (PLATA) 16000 .Grupni upiti SELECT COUNT (*) FROM RADNIK SELECT AVG (PLATA)AS SREDNJA_ARIT_VRED WHERE SIFRAO = '20' FROM RADNIK COUNT (*) 6 SELECT SUM (PLATA) FROM RADNIK WHERE SIFRARM='02' SUM (PLATA) 56000 SELECT MIN (PLATA) FROM RADNIK WHERE SIFRARM='02' MIN (PLATA) 12500 SREDNJA_ARIT_VRED 19350.

Podupiti se re{avaju u dva koraka: Prvo se nalazi ninimalna plata u tabeli RADNIK: SELECT MIN (PLATA) FROM RADNIK MIN (PLATA) 8000 Drugi korak je da se na|e ime Radnika i posao sa najmanjom platom u tabeli RADNIK korišćenjem ugnježdenog podupita: SELECT PREZIME. <= i dr. <. >. .PLATA FROM RADNIK WHERE PLATA = (SELECT MIN (PLATA) FROM RADNIK) PREZIME SIFRARM PLATA STEVIC 01 8000 Za podupit sa povratkom jednog reda koriste se komparacioni ili logi~ki operatori: =.Podupit sa povratkom jednog reda Podupit sa povratkom jednog reda treba posmatrati kroz primer definisanja najmanje plate u tabeli ODELJENJE.SIFRARM.

SIFRARM FROM RADNIK WHERE SIFRARM= (SELECT SIFRARM FROM RADNIK WHERE PREZIME = 'JOVIC') PREZIME JOVIC BOBIC CEBIC SIFRARM 03 03 03 .Podupit sa povratkom skupa vrednosti (više redova) Lista svih zaposlenih sa istim zanimanjem kao radnik JOVIC u tabeli RADNIK SELECT PREZIME.

PLATA FROM RADNIK WHERE PLATA > (SELECT AVG (PLATA) FROM RADNIK) PREZIME JOVIC BOBIC CEBIC SUSIC KLJAKIC FILIPIC PLATA 29750 28500 24500 30000 50000 30000 .Podupit sa povratkom skupa vrednosti (više redova) Izlistati sve Radnike koji zara|uju više od proseka SELECT PREZIME.

Podupit sa operatoroma IN Lista Radnika u odeljenju 10 sa istim SIFRARM u odnosu na odeljenje 30: SELECT PREZIME.SIFRARM FROM RADNIK WHERE SIFRAO= '10' AND SIFRARM IN (SELECT SIFRARM FROM RADNIK WHERE SIFRAO= '30') PREZIME CEBIC MILIC SIFRARM 03 01 .

SIFRAO. PLATA PREZIME KLJAKIC SIFRARM 05 SIFRAO 10 PLATA 50000 . i to u rastućem nizu SIFRARM i PLATA: SELECT PREZIME. PLATA FROM RADNIK WHERE SIFRARM = (SELECT SIFRARM FROM RADNIK WHERE PREZIME=' JOVIC') OR PLATA > (SELECT PLATA FROM RADNIK WHERE PREZIME= 'FILIPIC') ORDER BY SIFRAO.Višestepeni podupiti Treba izlistati radnike koji rade isti posao kao JOVIC ili imaju platu koja je ve}a od plate ili jednaka kao plata FILIPIC. SIFRARM.

. Korišćenje grupnih funkcuja u JOIN-u.Join).Povezivanje više tabela (JOIN )      Spajanje na jednakost (Equal Join).Equal Join). Spoljno spajanje (Other Join). Spajanje sa samim sobom (self. Spajanje na osnovu nejednakosti (Not.

MESTO FROM RADNIK.Spajanje na jednakost (Equal Join) SELECT PREZIME.SIFRAO = ODELJENJE.ODELJENJE WHERE PREZIME = 'ALAGIC' AND RADNIK.SIFRAO PREZIME ALAGIC MESTO BEOGRAD .

67 1 29750 2 30000 .AVG(PLATA) FROM RADNIK.SIFRAO GROUP BY NAZIVO.ODELJENJE WHERE RADNIK.SUM (PLATA). kao i kolike su suma (SUM) i prose~na plata (AVG) u ovako formiranim grupama.Korišćenje grupnih funkcuja u JOIN-u Na primer.SIFRARM NAZIVO PRIPREMA PRIPREMA PRIPREMA PRODAJA PRODAJA PRODAJA RAZVOJ RAZVOJ RAZVOJ SIFRARM 01 03 05 01 02 03 01 03 04 SUM(PLATA) 13000 24500 50000 9500 56000 28500 19001 29750 60000 COUNT (*)AVG(PLATA) 1 13000 1 24500 1 50000 1 9500 4 14000 1 28500 3 6333. SELECT NAZIVO.SIFRAO = ODELJENJE. na kom je SIFRARM mestu i koliko je radnika radilo (COUNT) na svakom od poslova u svakom odeljenju.SIFRARM.COUNT(*).

SIFRARM.ODELJENJE WHERE RADNIK. AVG (PLATA) FROM RADNIK. SELECT NAZIVO.SIFRAO GROUP BY NAZIVO.SIFRAO =ODELJENJE.Korišćenje HAVING klauzule U sledećem primeru biće prikazani poslovi koje obavljaju više ili najmanje dva radnika u svakom odeljenju korišćenjem HAVING klauzule.SUM (PLATA)COUNT (*).SIFRARM HAVING COUNT (*) >= 2 NAZIVO PRODAJA RAZVOJ RAZVOJ SIFRARM 02 01 04 SUM(PLATA) 56000 19001 60000 COUNT(*) 4 3 2 AVG(PLATA) 14000 6333.6 30000 .

SIFRAR PREZIME SUSIC FILIPIC ALAGIC VUKIC MARTIC TUBIC JAKIC MILIC ALIMPIC JOVIC BOBIC CEBIC KLJAKIC STEVIC SIFRARM 04 04 02 02 02 02 01 01 01 03 03 03 05 01 RUKOV 827566 827566 827698 827698 827698 827698 827698 827782 827788 827839 827839 827839 827839 827902 SIFRAO 827566 827566 827698 827698 827698 827698 827698 827782 827788 827839 827839 827839 827839 827902 PREZIME SIFRARM: JOVIC 03 JOVIC 03 BOBIC 03 BOBIC 03 BOBIC 03 BOBIC 03 BOBIC 03 CEBIC 03 SUSIC 04 KLJAKIC 05 KLJAKIC 05 KLJAKIC 05 KLJAKIC 05 FILIPIC 04 .SIFRAR AS SEF.RUKOV = NADR.SIFRARM FROM RADNIK PODR.SIFRARM.PODR.PREZIME.Spajanje tabele sa samom sobom (Self Join) SELECT PODR. RADNIK NADR WHERE PODR.RUKOV.PREZIME. PODR. NADR. NADR. NADR.

PREZIME.SIFRAO = ODELJENJE. PLATA FROM ODELJENJE LEFT JOIN RADNIK ON RADNIK. SIFRARM. ali da je i ono . Ovu konstataciju treba posmatrati kroz sledeći primer.SIFRAO Nazivo Prezime PRIPREMA CEBIC PRIPREMA KLJAKIC PRIPREMA MILIC RAZVOJ STEVIC RAZVOJ JOVIC RAZVOJ SUSIC RAZVOJ ALIMPIC RAZVOJ FILIPIC PRODAJA ALAGIC PRODAJA VUKIC PRODAJA MARTIC PRODAJA BOBIC PRODAJA TUBIC PRODAJA JAKIC PROIZVODNJA Sifrarm: 03 05 01 01 03 04 01 04 02 02 02 03 02 01 Plata 24500 50000 13000 8000 29750 30000 11000 30000 16000 12500 12500 28500 15000 9500 Može se primetiti da odeljenje PROIZVODNJA nema radnike. SELECT NAZIVO.Spoljno spajanje (Other Join) Left Join Spoljnim spajanjem Left Join biraju se svi redovi iz prve tabele i samo oni redovi iz druge tabele čiji se sadržaj veznih polja jednak sa sadr`ajem u prvoj tabeli.

samo treba promeniti redosled tabela.SIFRAO = ODELJENJE.Spoljnim spajanjem Right Join biraju se svi redovi iz druge tabele i samo oni redovi iz prve tabele čiji je sadržaj veznih polja jednak sadr`aju veznih polja druge tabele.SIFRAO Nazivo Prezime PRIPREMA CEBIC PRIPREMA KLJAKIC PRIPREMA MILIC RAZVOJ STEVIC RAZVOJ JOVIC RAZVOJ SUSIC RAZVOJ ALIMPIC RAZVOJ FILIPIC PRODAJA ALAGIC PRODAJA VUKIC PRODAJA MARTIC PRODAJA BOBIC PRODAJA TUBIC PRODAJA JAKIC PROIZVODNJA Sifrarm 03 05 01 01 03 04 01 04 02 02 02 03 02 01 Plata: 24500 50000 13000 8000 29750 30000 11000 30000 16000 12500 12500 28500 15000 9500 Mo`e se primetiti da odeljenje 40 PROIZVODNJA nema radnike ali da je i ono uzeto u razmatranje. pa je sada tabela sa desne strane ODELJENJE. PLATA FROM RADNIK RIGHT JOIN ODELJENJE ON RADNIK. Da bi se prikazao primer i za ovaj oblik spoljnog spajanja. SELECT NAZIVO. PREZIME. jer je postavljen uslov da se uzimaju svi redovi . SIFRARM.

Spajanje korišćenjem operatora UNION Na primer. SELECT SIFRARM FROM RADNIK WHERE Sifrao = '10' UNION SELECT SIFRARM FROM RADNIK WHERE Sifrao = '30' SIFRARM 01 02 03 . u okviru tabele RADNIK treba izdvojiti zajednička radna mesta u odeljenju 10 i 30.

kolona. MESTO ) SELECT '50'..vrednost..)‚ VALUES (vrednost. onda naredba INSERT INTO ima sledeću sintaksu: INSERT INTO tabela [ (kolona.)‚ SELECT kolona. NAZIVO.. 'NABAVKA'.)] Za unos podataka naredba INSERT se može definisati u dve varijante:  varijanta NE definisanjem kolone u koju se unose vrednosti preko VALUES INSERT INTO ODELJENJE VALUES ('50'. MESTO) VALUES ('50'. 'NABAVKA'..kolona. 'CACAK') Ako se želi dodati istovremeno više slogova.. 'NABAVKA'. 'CACAK' FROM RADNIK .. NAZIVO. kolona.. FROM tabela Za definisani primer piše se: INSERT INTO ODELJENJE ( SIFRAO.Održavanje baze podataka Ubacivanje redova u tabelu-INSERT Naredba za dodavanje jednog sloga ima sledeću sintaksu: INSERT INTO tabela [ (kolona. 'CACAK')  varijanta SA definisanjem kolone u koju se unose vrednosti preko VALUES INSERT INTO ODELJENJE (SIFRAO....

]=izraz.. to iziskuje izvršenje UPDATE naredbe. na sledeći način: UPDATE RADNIK SET PLATA = PLATA + 100 WHERE SIFRARM = '04' .kolona. podupit WHERE uslov Ako se uzme već poznata tabela RADNIK i doda svim radnicima sa zanimanjem 04 (PROJEKTANT) po 100 dinara povećanja zarade..Izmena vrednosti memorisanih u poljima-UPDATE Naredba UPDATE koristi se za kreiranje upita sa kojim se može izvršiti promena vrednosti podataka u poljima tabele. Sintaksa ove naredbe je: UPDATE tabela alias SET kolona .

Dodavanje nove kolone postojećoj tabeli-ALTER TABLE ALTER TABLE naziv ADD (tip kolone [ogranicenja‚]) ALTER TABLE RADNIK ADD SIF TEXT (3) .

ali koji zadovoljavaju us definisan pod WHERE delom rečenice.Brisanje redova iz tabele-DELETE Naredbom DELETE brišu se redovi iz jedne ili više tabela p liste u okviru FROM dela rečenice. Sintaksa ove naredbe je: DELETE FROM tabela WHERE uslov Kako u odeljenju 40 (tabela ODELJENJE) nema zaposlenih (tabela RADNIK) može se brisati na slede}i način: DELETE FROM ODELJENJE WHERE SIFRAO = '40' .

Brisanje tabela. Sintaksa ove naredbe je: DROP TABLE naziv tabele Ako se želi izbrisati tabela HPOSAO. piše se: DROP TABLE HPOSAO Na taj način briše se definicija tabele iz baze podataka zajedno sa podacima koje tabela sadrži. naredbu DROP može .DROP TABLE Ukoliko se želi izbrisati cela tabela. koristi se naredba DROP TABLE.