Upload
goran-grigorov
View
16
Download
4
Embed Size (px)
DESCRIPTION
Microsoft Acess
Citation preview
Normalizacija
• Када податке чувамо у фасциклама, обично имамо велики број поновљених ставки. Тако, када на пример као продавци чувамо податке о наруџбама, имаћемо евиденцију о купцима, поруџбеницама и копије рачуна. У тим папирима се подаци о купцу понављају три пута а подаци о купљеним ставкама два пута. Ако се у рачунару формира база података стриктно према описаној форми, имали бисмо исто понављање података.
Normalizacija
• Треба имати у виду да није у питању само штедња простора. Већи проблем представља одржавање интегритета података - ако у случају са дуплираним подацима треба да извршимо неку измену - рецимо измену адресе купца, морамо водити рачуна да ту измену унесемо на три места - у евиденцији купаца, у евиденцији поруџбина и евиденцији рачуна. Ова појава дуплирања података у бази се обично назива редунданца и по правилу се приликом пројектовања структуре базе избегава
Normalizacija• Овај проблем се у релационој бази решава тако, што се
адреса са осталим подацима о купцима чувала само у једној табели, подаци о поруџбинама (без адресе и осталих података о купцима) у другој табели, а подаци о испорукама и рачунима у трећој.
• Процес преструктуирања података ради избегавања редунданце се назива нормализација. Основа за нормализацију је функционална зависност. Ту се подразумева груписање ставки у табеле на начин који ће обезбедити релацију "један према један" између појединих ставки. Тако на пример, у табели "Kupci", име и презиме, као и адреса купца су функционално зависни од атрибута "број купца" (kupac_br). Другим речима, имамо само једну вредност “ime", “prezime" и "аdresu" купца за један дати “broj kupca".
Normalizacija• Процес нормализације се своди на растављање
сложене релације (табеле) у мање релације (табеле) које ће у сваком кораку бити у вишој нормалној форми.
• До данас је формално дефинисано пет нормалних форми. Углавном се при креирању база података само прве три практично користе. Свака виша нормална форма задовољава услове за нижу - тако на пример, релација која је у трећој нормалној форми, аутоматски је и у првој и другој нормалној форми. Обрнуто не важи, тј. релација која је у првој нормалној форми, биће и у другој нормалној форми само ако задовољи тест за другу нормалну форму.
Normalizacija - Прва нормална форма (1НФ)Тест за прву нормалну форму представља проверу да ли сваки атрибут у релацији (колона у табели) има "атомизирану" вредност, тј. јединствену вредност као што је на пример "број купца", "име купца" и слично.
Пример:
narucba_br kupac_br datum_nar adresa_por stavka_br opis kolicina cena_ukup 1001 101 1.12.91 Beograd 12345 cipele 100 200.000 1001 101 1.12.91 Beograd 12346 patike 200 300.000
Као што се из горњег примера види, у табелама које су у првој
нормалној форми може се појавити редунданца - дуплирање података.
Normalizacija –друга нормална форма (2НФ)
Тест којим се проверава да ли је табела, која је у првој нормалној форми уједно и у другој нормалној форми зависи од идентификације кључног атрибута у релацији (табели). Свака вредност кључа мора јединствено идентификовати ред у табели а сваки не-кључни атрибут мора зависити од кључа. У претходном примеру јасно је да ови услови нису задовољени. Тако на пример, “kolicina" и “cena_ukup" зависе од комбинације “narucba_br" и “stavka_br". Такође, “opis" практично зависи од шифре ставке (“stavka_br")
Normalizacija –друга нормална форма (2НФ)
Према павилима за другу нормалну форму треба извршити декомпозицију на следећи начин:
Tabela Narucbenarucba_br kupac_br datum_nar adresa_pos1001 101 1.12.91 Beograd
Tabela Narucbe - Stavkenarucba_br stavka_br kolicina cena_ukup1001 12345 100 200.0001001 12346 200 300.000
Tabela Stavkestavka_br opis12345 cipele12346 patike
• У табели “Narucbe" кључ је поље “narucba_br"; кључ табеле “Narucbe - stavke" је комбинација поља “narucba_br" и “stavka_br" док је кључ у трећој табели поље “stavka_br".
• Разлог за раздвајање групе података у другој и трећој табели је да би се избегла редунданца услед понављања описа, што би се десило уколико би се иста ставка појавила у једној или више наручби
Normalizacija –трећа нормална форма (3НФ)
Да би табела која је у другој нормалној форми задовољила и трећу нормалну форму, не сме постојати никаква зависност између некључних атрибута. Када погледамо претходне три табеле, видећемо да у првој постоји зависност података о адреси пошиљке од идентификационог броја купца (зависност “adresa_pos" од “kupac br"). Да би се задовољио услов за трећу нормалну форму, прву табелу треба поделити на следећи начин:
Tabela Narucbenarucba_br kupac_br datum_nar 1001 101 1.12.91
Tabela Kupcikupac_br adresa_pos 101 Beograd
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
Upit nad jednom tabelom SELECT kolona [,kolona...] FROM tabela
SELECT SIFRAO, NAZIVO, MESTOFROM ODELJENJE
SIFRAO NAZIVO MESTO 10 PRIPREMA PANCEVO 20 RAZVOJ N_SAD 30 PRODAJA BEOGRAD 40 PROIZVODNJA PAZOVA
SELECT *FROM RADNIK
SIFRAR PREZIME IME SI
FRARM:
JMBG RUKOV DATUMZ ZAPOSLENJA:
PLATA:
STIMUL SSS
SIFRAO
POL VRSTA:
827369 STEVIC ZORAN 01 1411952171033 827902 28/03/98 8000 600 20 M 2 827499 ALAGIC MILAN 02 2503964345612 827698 28/03/98 16000 600 30 M 827521 VUKIC MILOS 02 1130497055432 827698 28/03/98 12500 600 30 M 2 827566 JOVIC MIRA 03 1130497056435 827839 28/04/90 29750 700 20 Z 1 827654 MARTIC ZORA 02 1140496055444 827698 12/06/88 12500 1000 30 Z 1 827698 BOBIC IVAN 03 1405987055455 827839 15/11/89 28500 800 30 M 2 827782 CEBIC GORAN 03 1203970654566 827839 11/06/80 24500 500 10 M 2 827788 SUSIC ZORAN 04 1304954676755 827566 23/10/91 30000 650 20 M 2 827839 KLJAKIC STEVAN 05 1312952122344 827839 06/12/87 50000 600 10 M 2 827844 TUBIC MIRA 02 1312954342122 827698 08/03/78 15000 600 30 Z 1 827876 ALIMPIC PETAR 01 2503976343566 827788 09/05/92 11000 780 20 M 827900 JAKIC VLADAN 01 1211965457231 827698 28/03/90 9500 900 30 M 827902 FILIPIC DRAGAN 04 1210970534221 827566 20/11/96 30000 1000 20 M 2 827934 MILIC DRAGAN 01 0706956456465 827782 28/03/93 13000 790 10 M 2
Izbor specificikovanih redova - klauzula WHERE
SELECT [DISTINCT] kolona [,kolona...]FROM tabela[WHERE uslov_selekcije]
Uslovi selekcije u WHERE klauzuli su:
operatori poređenja (kao što su =, >, >=, <, <=), operatori ranga (BETWEEN i NOT BETWEEN),liste (IN, NOT IN),uzorci (LIKE i NOT LIKE),nepoznate vrednosti (IS NULL i IS NOT NULL), višestruki uslovi pretraživanja (AND,OR).
Operatori poređenja
SELECT Sifrar, Prezime, Ime, Plata, 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
Operatori ranga BETWEEN
SELECT PREZIME, PLATA FROM RADNIK WHERE PLATA BETWEEN 12000 AND 14000
PREZIME PLATAVUKIC 12500MARTIC 12500MILIC 13000
Operator BETWEEN omogućava da se izaberu redovi koji sadrže vrednosti u nekom rasponu, a koje je korisnik specifikovao.
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','30')
WHERE SIFRAO = '10' OR SIFRAO = '30'
SIFRAO NAZIVO MESTO10 PRIPREMA PANCEVO30 PRODAJA BEOGRAD
Operatori za definisanje uzoraka LIKE
Spisak svih radnika koji imaju " U" kao drugo slovo u prezimenu.
SELECT PREZIME FROM RADNIK WHERE PREZIME LIKE "?U*"
PREZIME
VUKIC
SUSIC
TUBIC
Definisanje nepoznatih vrednosti IS NULL
Spisak svih radnika kojima nije definisana kolona Vrsta.
SELECT Prezime,Ime,VrstaFROM RADNIKWHERE VRSTA IS NULL;
Prezime Ime Vrsta
ALAGIC MILAN
ALIMPIC PETAR
JAKIC VLADAN
Višestruki uslovi pretraživanja AND
SELECT PREZIME, SIFRARM, PLATA FROM RADNIK WHERE SIFRARM = '03' AND PLATA > 28000
Lista DIREKTORA (03), koju zarađuju više od 28000 dinara.
PREZIME SIFRARM PLATA
JOVIC 03 29750
BOBIC 03 28500
Višestruki uslovi pretraživanja OR
SELECT PREZIME, SIFRARM, PLATA FROM RADNIK WHERE SIFRARM ='03' OR PLATA > 28000
Lista DIREKTORA (03), ili svih onih koji zara|uju više od 28000 dinara
PREZIME SIFRARM PLATAJOVIC 03 29750BOBIC 03 28500CEBIC 03 24500SUSIC 04 30000KLJAKIC 05 50000FILIPIC 04 30000
Izračunavanje vrednosti u SELECT listi
SELECT PREZIME,PLATA,STIMUL,PLATA+STIMUL FROM RADNIK WHERE SIFRARM = '02'
Treba izlistati prezime, platu, stimulaciju i sumu plate i stimulacije za sve Radnike sa SIFRARM= '02'
SELECT PREZIME,PLATA,STIMUL,PLATA+STIMUL AS UKUPNO FROM RADNIK WHERE SIFRARM = '02'
PREZIME PLATA STIMUL UKUPNOALAGIC 16000 600 16600VUKIC 12500 600 13100MARTIC 12500 1000 13500TUBIC 15000 600 15600
Sortiranje redova pomoću ORDER BY klauzule
ORDER BY klauzula kontroliše redosled prikazivanja redova.
SELECT [DISTINCT] kolona [,kolona...]FROM tabela[WHERE uslov-selekcije]ORDER BY (izraz|pozicija)[ASC | DESC]
SELECT PLATA, SIFRARM, PREZIME FROM RADNIK WHERE SIFRAO= '30' ORDER BY PLATA
PLATA SIFRARM PREZIME
9500 01 JAKIC12500 02 MARTIC12500 02 VUKIC15000 02 TUBIC16000 02 ALAGIC28500 03 BOBIC
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. Ovim se omogućuje da funkcije za dobijanje sumarnih informacija budu primenjene na svaku ovakvu grupu posebno, umesto na celu tabelu. SELECT [DISTINCT] kolona [,kolona...]FROM tabela[WHERE uslov-selekcije][GROUP BY izraz {,izraz}]ORDER BY (izraz|pozicija)[ASC | DESC]
SELECT SIFRAO, MAX (PLATA) FROM RADNIK GROUP BY SIFRAO Rezultat SQL upita je:
SIFRAO MAX (PLATA)10 5000020 3000030 28500
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.
SELECT SIFRARM, AVG (PLATA), COUNT (*)FROM RADNIK WHERE PLATA > 25000 GROUP BY SIFRARM;
Rezultat SQL upita je:
Sifrarm AVG (PLATA) COUNT (*)03 29125 204 30000 205 50000 1
Korišćenje kombinacije GROUP BY i ORDER BY klauzula
SELECT SIFRARM, AVG (PLATA)FROM RADNIKGROUP BY SIFRARMORDER BY AVG (PLATA);
Rezultat SQL upita je:
Sifrarm: AVG (PLATA)01 1037502 1400003 2758304 3000005 50000
Korišćenje HAVING klauzuleKlauzula HAVING ima zadatak da specificira uslove pretra`ivanja u okviru GROUP BY klauzule.
SELECT [DISTINCT] kolona [,kolona...]FROM tabela[WHERE uslov-selekcije][GROUP BY izraz {,izraz}][HAVING grupni uslov]ORDER BY (izraz|pozicija)[ASC | DESC]
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.
SELECT SIFRAO, AVG (PLATA)FROM RADNIKGROUP BY SIFRAOHAVING COUNT (*) > 3;Sifrao AVG (PLATA)20 18125.230 15666.7
Grupni upiti SELECT COUNT (*) FROM RADNIK WHERE SIFRAO = '20'
COUNT (*)6
SELECT AVG (PLATA)AS SREDNJA_ARIT_VRED FROM RADNIK
SREDNJA_ARIT_VRED19350,066
SELECT SUM (PLATA) FROM RADNIK WHERE SIFRARM='02'
SUM (PLATA)56000
SELECT MIN (PLATA) FROM RADNIK WHERE SIFRARM='02'
MIN (PLATA)12500
SELECT MAX (PLATA) FROM RADNIK WHERE SIFRARM='02'
MAX (PLATA)16000
Podupit sa povratkom jednog redaPodupit sa povratkom jednog reda treba posmatrati kroz primer definisanja najmanje plate u tabeli ODELJENJE. Podupiti se re{avaju u dva koraka: Prvo se nalazi ninimalna plata u tabeli RADNIK: SELECT MIN (PLATA) FROM RADNIK
MIN (PLATA)8000Drugi korak je da se na|e ime Radnika i posao sa najmanjom platom u tabeli RADNIK korišćenjem ugnježdenog podupita: SELECT PREZIME,SIFRARM,PLATA FROM RADNIK WHERE PLATA = (SELECT MIN (PLATA) FROM RADNIK) PREZIME SIFRARM PLATASTEVIC 01 8000
Za podupit sa povratkom jednog reda koriste se komparacioni ili logi~ki operatori: =, <, >, <= i dr.
Podupit sa povratkom skupa vrednosti (više redova)
Lista svih zaposlenih sa istim zanimanjem kao radnik JOVIC u tabeli RADNIK SELECT PREZIME,SIFRARM FROM RADNIK WHERE SIFRARM=
(SELECT SIFRARM FROM RADNIK WHERE PREZIME = 'JOVIC')
PREZIME SIFRARMJOVIC 03BOBIC 03CEBIC 03
Podupit sa povratkom skupa vrednosti (više redova)
Izlistati sve Radnike koji zara|uju više od proseka SELECT PREZIME,PLATA FROM RADNIK WHERE PLATA >
(SELECT AVG (PLATA) FROM RADNIK)
PREZIME PLATAJOVIC 29750BOBIC 28500CEBIC 24500SUSIC 30000KLJAKIC 50000FILIPIC 30000
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 SIFRARMCEBIC 03MILIC 01
Višestepeni podupitiTreba izlistati radnike koji rade isti posao kao JOVIC ili imaju platu koja je ve}a od plate ili jednaka kao plata FILIPIC, i to u rastućem nizu SIFRARM i PLATA: SELECT PREZIME, SIFRARM, SIFRAO, PLATA FROM RADNIK WHERE SIFRARM = (SELECT SIFRARM FROM RADNIK WHERE PREZIME=' JOVIC') OR PLATA > (SELECT PLATA FROM RADNIK WHERE PREZIME= 'FILIPIC') ORDER BY SIFRAO, PLATA
PREZIME SIFRARM SIFRAO PLATAKLJAKIC 05 10 50000
Povezivanje više tabela (JOIN )
Spajanje na jednakost (Equal Join),Korišćenje grupnih funkcuja u JOIN-u,Spajanje na osnovu nejednakosti (Not- Equal Join),Spajanje sa samim sobom (self- Join),Spoljno spajanje (Other Join).
Spajanje na jednakost (Equal Join)
SELECT PREZIME,MESTO FROM RADNIK,ODELJENJE WHERE PREZIME = 'ALAGIC' AND RADNIK.SIFRAO = ODELJENJE.SIFRAO
PREZIME MESTOALAGIC BEOGRAD
Korišćenje grupnih funkcuja u JOIN-uNa primer, na kom je SIFRARM mestu i koliko je radnika radilo (COUNT) na svakom od poslova u svakom odeljenju, kao i kolike su suma (SUM) i prose~na plata (AVG) u ovako formiranim grupama.
SELECT NAZIVO,SIFRARM,SUM (PLATA),COUNT(*),AVG(PLATA) FROM RADNIK,ODELJENJE WHERE RADNIK.SIFRAO = ODELJENJE.SIFRAO GROUP BY NAZIVO,SIFRARM
NAZIVO SIFRARM SUM(PLATA) COUNT (*)AVG(PLATA)PRIPREMA 01 13000 1 13000PRIPREMA 03 24500 1 24500PRIPREMA 05 50000 1 50000PRODAJA 01 9500 1 9500PRODAJA 02 56000 4 14000PRODAJA 03 28500 1 28500RAZVOJ 01 19001 3 6333,67RAZVOJ 03 29750 1 29750RAZVOJ 04 60000 2 30000
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.
SELECT NAZIVO,SIFRARM,SUM (PLATA)COUNT (*), AVG (PLATA) FROM RADNIK,ODELJENJE WHERE RADNIK.SIFRAO =ODELJENJE.SIFRAO GROUP BY NAZIVO,SIFRARM HAVING COUNT (*) >= 2
NAZIVO SIFRARM SUM(PLATA) COUNT(*) AVG(PLATA)
PRODAJA 02 56000 4 14000RAZVOJ 01 19001 3 6333,6RAZVOJ 04 60000 2 30000
Spajanje tabele sa samom sobom (Self Join)
SELECT PODR.PREZIME,PODR.SIFRARM, PODR.RUKOV, NADR.SIFRAR AS SEF, NADR.PREZIME, NADR.SIFRARM FROM RADNIK PODR, RADNIK NADR WHERE PODR.RUKOV = NADR.SIFRAR
PREZIME SIFRARM RUKOV SIFRAO PREZIME SIFRARM:SUSIC 04 827566 827566 JOVIC 03FILIPIC 04 827566 827566 JOVIC 03ALAGIC 02 827698 827698 BOBIC 03VUKIC 02 827698 827698 BOBIC 03MARTIC 02 827698 827698 BOBIC 03TUBIC 02 827698 827698 BOBIC 03JAKIC 01 827698 827698 BOBIC 03MILIC 01 827782 827782 CEBIC 03ALIMPIC 01 827788 827788 SUSIC 04JOVIC 03 827839 827839 KLJAKIC 05BOBIC 03 827839 827839 KLJAKIC 05CEBIC 03 827839 827839 KLJAKIC 05KLJAKIC 05 827839 827839 KLJAKIC 05STEVIC 01 827902 827902 FILIPIC 04
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. Ovu konstataciju treba posmatrati kroz sledeći primer.
SELECT NAZIVO, PREZIME, SIFRARM, PLATAFROM ODELJENJE LEFT JOIN RADNIK ON RADNIK.SIFRAO = ODELJENJE.SIFRAO
Nazivo Prezime Sifrarm: PlataPRIPREMA CEBIC 03 24500PRIPREMA KLJAKIC 05 50000PRIPREMA MILIC 01 13000RAZVOJ STEVIC 01 8000RAZVOJ JOVIC 03 29750RAZVOJ SUSIC 04 30000RAZVOJ ALIMPIC 01 11000RAZVOJ FILIPIC 04 30000PRODAJA ALAGIC 02 16000PRODAJA VUKIC 02 12500PRODAJA MARTIC 02 12500PRODAJA BOBIC 03 28500PRODAJA TUBIC 02 15000PRODAJA JAKIC 01 9500PROIZVODNJA
Može se primetiti da odeljenje PROIZVODNJA nema radnike, ali da je i ono uzeto u razmatranje, jer je postavljen uslov da se uzimaju svi redovi prve tabele (ODELJENJE), bez obzira na to da li imaju sprezanje.
Spoljnim spajanjem Right Joinbiraju 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. Da bi se prikazao primer i za ovaj oblik spoljnog spajanja, samo treba promeniti redosled tabela, pa je sada tabela sa desne strane ODELJENJE.
SELECT NAZIVO, PREZIME, SIFRARM, PLATAFROM RADNIK RIGHT JOIN ODELJENJE ON RADNIK.SIFRAO = ODELJENJE.SIFRAO
Nazivo Prezime Sifrarm Plata:PRIPREMA CEBIC 03 24500PRIPREMA KLJAKIC 05 50000PRIPREMA MILIC 01 13000RAZVOJ STEVIC 01 8000RAZVOJ JOVIC 03 29750RAZVOJ SUSIC 04 30000RAZVOJ ALIMPIC 01 11000RAZVOJ FILIPIC 04 30000PRODAJA ALAGIC 02 16000PRODAJA VUKIC 02 12500PRODAJA MARTIC 02 12500PRODAJA BOBIC 03 28500PRODAJA TUBIC 02 15000PRODAJA JAKIC 01 9500PROIZVODNJA
Mo`e se primetiti da odeljenje 40 PROIZVODNJA nema radnike ali da je i ono uzeto u razmatranje, jer je postavljen uslov da se uzimaju svi redovi druge (ODELJENJE) tabele bez obzira da li imaju sprezanje.
Spajanje korišćenjem operatora UNION
Na primer, u okviru tabele RADNIK treba izdvojiti zajednička radna mesta u odeljenju 10 i 30.
SELECT SIFRARMFROM RADNIKWHERE Sifrao = '10'UNION SELECT SIFRARMFROM RADNIKWHERE Sifrao = '30'
SIFRARM01020305
Održavanje baze podatakaUbacivanje redova u tabelu-INSERT
Naredba za dodavanje jednog sloga ima sledeću sintaksu:INSERT INTO tabela [ (kolona,kolona,...)‚ VALUES (vrednost,vrednost,...)] 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', 'NABAVKA', 'CACAK') varijanta SA definisanjem kolone u koju se unose vrednosti preko VALUES INSERT INTO ODELJENJE (SIFRAO, NAZIVO, MESTO) VALUES ('50', 'NABAVKA', 'CACAK')
Ako se želi dodati istovremeno više slogova, onda naredba INSERT INTO ima sledeću sintaksu:INSERT INTO tabela [ (kolona,kolona,..)‚ SELECT kolona, kolona... FROM tabela Za definisani primer piše se:INSERT INTO ODELJENJE ( SIFRAO, NAZIVO, MESTO )SELECT '50', 'NABAVKA', 'CACAK' FROM RADNIK
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 ,kolona...]=izraz, podupit WHERE uslov
Ako se uzme već poznata tabela RADNIK i doda svim radnicima sa zanimanjem 04 (PROJEKTANT) po 100 dinara povećanja zarade, to iziskuje izvršenje UPDATE naredbe, na sledeći način: UPDATE RADNIKSET PLATA = PLATA + 100WHERE SIFRARM = '04'
Dodavanje nove kolone postojećoj tabeli-ALTER TABLE
ALTER TABLE naziv ADD (tip kolone [ogranicenja‚])
ALTER TABLE RADNIK ADD SIF TEXT (3)
Brisanje redova iz tabele-DELETE
Naredbom DELETE brišu se redovi iz jedne ili više tabela preko liste u okviru FROM dela rečenice, ali koji zadovoljavaju uslov definisan pod WHERE delom rečenice.Sintaksa ove naredbe je:
DELETE FROM tabela WHERE uslovKako 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- DROP TABLE
Ukoliko se želi izbrisati cela tabela, koristi se naredba DROP TABLE.
Sintaksa ove naredbe je:
DROP TABLE naziv tabele
Ako se želi izbrisati tabela HPOSAO, piše se:
DROP TABLE HPOSAONa taj način briše se definicija tabele iz baze podataka zajedno sa podacima koje tabela sadrži; naredbu DROP može izvesti samo onaj ko je kreirao tabelu ili ima DBA privilegiju.