This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Unošenje sadržaja u neku tabelu se vrši naredbom INSERT, na dva načina:
INSERT INTO <ime tabele> SET
->imeKolone1=vrijednost1
->imeKolone2=vrijednost2
->;
ili
INSERT INTO <ime tabele>
->(imeKolone1, imeKolone2, ...)
->VALUES (vrijednost1, vriednost2, ...);
3
Pregled sadržaja u tabelama se vrši komandom SELECT i to je jedna od najkomplikovanijih
naredbi u SQL-u, zato što je ona glavna i od nje ne zavisi fleksibilnost odgovora. Opšti oblik ove
naredbe izgleda (služi za ispis kompletne tabele):
SELECT * FROM <ime tabele>
Sve promjene u bazi se obavljaju pomoću ključne reči UPDATE. Ova naredba sadrži
elemente naredbe INSERT (za podešavanje vrijednosti kolone) i elemente komande SELECT (za
izbor sadržaja koji ćemo modifikovati). Uopšteno oblik komande UPDATE izgleda ovako:
UPDATE <imeTabele> SET
-><imeKolone>=<novaVrijednost>, ...
->WHERE <uslov>
Brisanje sadržaja u SQL-u je jednostavno i opasno, pa treba biti oprezan kada se koristi ova
komanda. Komanda za brisanje sadržaja je slijedeća:
DELETE FROM <imeTabele> WHERE <uslov>;
Komanda koja briše čitav sadržaj tabele:
DELETE FROM <imeTabele>;
4. Kreiranje tabela
Poslije kreiranja baze podataka, prvo što treba da se uradi je da se odrede entiteti (koji su u
relacionim bazama podataka predstavljeni kao tabele), atributi (kolone), tipovi i domeni podataka.
Baza podataka „Mediasky“ ima 6 tabela. Prije samog kreiranja tabela potrebno je dobro
osmisliti koje atribute će tabela imati, na koji način će biti složene kolone te precizno i «sa pogledom
u budućnost» odrediti tipove i domene podataka
4
Vrijednosti domena predstavljaju skup svih istovrsnih podataka u toj tabeli.
SQL naredba koja kreira tabelu Korisnik:
CREATE TABLE korisnik( mbrKorisnik CHAR (13) NOT NULL, imeKorisnik CHAR(10) NOT NULL, prezKorisnik CHAR(15) NOT NULL, pbrStan INT REFERENCES mjesto (pbr)NOT NULL, sifKorisnik INT NOT NULL);
5. Tabele baze podataka »Mediasky«
1.Tabela Mjesto
CREATE TABLE mjesto ( pbr INT PRIMARY KEY NOT NULL, nazMjesto CHAR(10) NOT NULL);
2.Tabela Korisnik
CREATE TABLE korisnik( mbrKorisnik CHAR(13) NOT NULL, imeKorisnik CHAR(10) NOT NULL, prezKorisnik CHAR(15) NOT NULL, pbrStan INT REFERENCES mjesto (pbr)NOT NULL, sifKorisnik INT NOT NULL);
3. Tabela orgjed (organizaciona jedinica)
CREATE TABLE orgjed( sifOrgjed INT PRIMARY KEY NOT NULL
5
, pbrMjesto INT REFERENCES mjesto (pbr) NOT NULL, sifNadOrgjed INT REFERENCES orgjed (sifOrgjed));
4. Tabela usluga
CREATE TABLE usluga( sifUsluga INT PRIMARY KEY NOT NULL, nazUsluge CHAR(50) NOT NULL, cijena INT NOT NULL);
5.Tabela zaposlenik
CREATE TABLE zaposlenik( mbrZaposlenik INT PRIMARY KEY NOT NULL, imeZaposlenik CHAR(10) NOT NULL, prezZaposlenik CHAR(15) NOT NULL, pbrStan INT REFERENCES mjesto (pbr) NOT NULL, sifOrgjed INT REFERENCES orgjed (sifOrgjed) NOT NULL);
6. Tabela racun
CREATE TABLE racun( sifRacun INT PRIMARY KEY NOT NULL, sifUsluga INT REFERENCES usluga (sifUsluga) NOT NULL
6
, mbrKorisnik INT REFERENCES korisnik (mbrKorisnik) NOT NULL, mbrZaposlenik INT REFERENCES zaposlenik (mbrZaposlenik) NOT NULL, datIzdavanja DATETIME NOT NULL, vrTrajanja INT NOT NULL);
6. Povezivanje tabela - dijagram
7
7. Upiti
1. SELECT * FROM korisnik
2. SELECT * FROM mjesto
3. SELECT * FROM orgjed
4. SELECT * FROM racun
5. SELECT * FROM usluga
8
6. SELECT * FROM zaposlenik
7. SELECT imeKorisnik, prezKorisnik, nazMjesto FROM korisnik, mjesto WHERE korisnik.pbrStan=mjesto.pbr
8. SELECT imeKorisnik, prezKorisnik, datIzdavanja FROM korisnik, racun WHERE korisnik.mbrKorisnik=racun.mbrKorisnik AND datIzdavanja+vrTrajanja <= '11.05.2010'
9. SELECT imeKorisnik, prezKorisnik, nazUsluge FROM korisnik, racun, usluga WHERE racun.sifUsluga=usluga.sifUsluga AND racun.mbrKorisnik=korisnik.mbrKorisnik
9
10. SELECT zaposlenik.prezZaposlenik, zaposlenik.imeZaposlenik, COUNT(racun.sifRacun) FROM racun, zaposlenik WHERE racun.mbrZaposlenik=zaposlenik.mbrZaposlenik GROUP BY zaposlenik.imeZaposlenik, zaposlenik.prezZaposlenik
11. SELECT racun.sifRacun FROM racun WHERE datIzdavanja BETWEEN '1.1.2010' AND '1.1.2011'
12. SELECT korisnik.imeKorisnik, korisnik.prezKorisnik, SUM(usluga.cijena) FROM korisnik, racun, usluga WHERE korisnik.mbrKorisnik=racun.mbrKorisnik AND racun.sifUsluga=usluga.sifUsluga GROUP BY korisnik.imeKorisnik, korisnik.prezKorisnik
13. SELECT zaposlenik.imeZaposlenik, zaposlenik.prezZaposlenik, SUM(usluga.cijena) FROM zaposlenik, racun, usluga WHERE zaposlenik.mbrZaposlenik=racun.mbrZaposlenik AND racun.sifUsluga=usluga.sifUsluga GROUP BY zaposlenik.imeZaposlenik, zaposlenik.prezZaposlenik
10
14. SELECT imeKorisnik AS IME, prezKorisnik AS PREZIME FROM korisnik
15. SELECT AVG(usluga.cijena) FROM racun, usluga WHERE racun.sifUsluga=usluga.sifUsluga
16. SELECT MAX(cijena) AS MAXIMUM, MIN(cijena) AS MINIMUM FROM racun, usluga WHERE racun.sifUsluga=usluga.sifUsluga
17. SELECT racun.sifRacun, mjesto.nazMjesto FROM racun, zaposlenik, orgjed, mjesto WHERE racun.mbrZaposlenik=zaposlenik.mbrZaposlenik AND zaposlenik.sifOrgjed=orgjed.sifOrgjed AND orgjed.pbrMjesto=mjesto.pbr ORDER BY mjesto.nazMjesto DESC
18. SELECT korisnik.imeKorisnik, SUM(usluga.cijena) FROM korisnik, racun, usluga WHERE racun.mbrKorisnik=korisnik.mbrKorisnik AND racun.sifUsluga=usluga.sifUsluga AND korisnik.mbrKorisnik LIKE '03%' GROUP BY korisnik.imeKorisnik