Professional Documents
Culture Documents
1.Uvod....................................................................................................................................................3
1.1 Istorija SQL-a................................................................................................................................3
1.2 Kratak pregled SQL-a....................................................................................................................3
2. SQL.....................................................................................................................................................4
2.1 Kreiranje baze podataka...............................................................................................................6
2.2 Pravila pisanja koda......................................................................................................................7
2.3 Tabele...........................................................................................................................................8
2.4 Kreiranje tabele...........................................................................................................................8
3. Tabele.................................................................................................................................................9
3.1 Atributi.......................................................................................................................................10
3.2 Uvezivanje tabela – dijagram.....................................................................................................11
4.NAREDBE SQL JEZIKA.................................................................................................................11
5.UPITI..................................................................................................................................................12
6.Spajanje.............................................................................................................................................14
7.Relacioni operatori............................................................................................................................16
2
1.Uvod
3
2. SQL
U meniju Start, pređite u odeljak All Programs, izaberite opciju Microsoft SQL Server
2005, a zatim opciju SQL Server Management Studio (slika 1-1). Pojaviće se ekran prikazan
na slici 1-2 koji omogućava da uspostavite vezu s Microsoftovim SQL Serverom 2005. Ako se
tip i ime servera razlikuju od onih ponuđenih na ekranu, upišite odgovarajući tip i ime
servera, a zatim izaberite opciju Windows Authentication. Pritisnite zatim dugme Connect.
Slika 1-1. Pokretanje Microsoftovog SQL Servera 2005 i programa SQL Server Management
Studio
4
Pošto uspostavite vezu sa serverom koji ste zadali, pojaviće se ekran programa SQL
Server Management Studio (slika 1-3)
Slika 1-3. Uspostavljena je veza sa serverom kojim upravlja Microsoftov SQL Server 2005
5
2.1 Kreiranje baze podataka
Kliknemo desni klik misa na DATABASE. Iz prirucnog menija izaberemo opciju NEW
DATABASE.
Slika 2.
U prozoru koji nam se otvori u polje DATABASE NAME upisemo ime naše baze.
Slika 3.
6
Kada smo upisali ime nase baze kliknemo na options i u polju COLLATION odaberemo
jezik. U nasem slučaju odabiramo jezik Croatian_CI_AI.
Slika 4.
Kliknemo OK i formirali smo našu bazu podataka.
SQL ne pravi razliku između malih i velikih slova, to jest sledeca dva primjera su jednaka:
U SQL pored kodova možemo pisati i komentare kao podsjetnike i oni nemaju nikakvu vezu sa
kodom, osim sto daju određenu informaciju programeru koji čia taj kod.
Postoje dvije vrste komentara:
Imena objekata u SQL (imena tabela, kolona, pogleda) prave se tako da prvi znak mora biti a-
z, A-Z ili podvučeno (underline) _, te u nekim slučajevima, @ i #.
2.3 Tabele
7
Tabele predstavljaju dvodimenzionalne matrice čiji redovi predstavljaju naziv i svrhu
objekata spremljenih u tabelu, a kolone svrhu objekata izraženih odgovarajučim tipom
podataka. Uz pomoć jedne n-torke opisali smo jedan objektat npr:
Slika.4
U bazi koju smo formirali imamo folder TABLES, kliknemo desnik klikom i otvori
nam se sledeći padajući meni:
Slika 5.
8
Slika 6.
U kolonu Column Name ispisujemo ime kolone, u Data Type vršimo odabir tipa
podatka, a u kolonu Allow Nulls nam oznacava koja kolona smije ostati prazna a koja ne.
Kada unesemo sve potrebne podatke snimimo tabelu.
3. Tabele
1. Radnik:
Slika 7.
2. Vozila:
Slika 8.
9
3. Mjesec:
Slika 9.
4. Potrošnja:
Slika 10.
3.1 Atributi
Atributi tabele Radnik:
Radnik#, radni_staž - smallint – numerički tip podatka iz klase integer, a njega sam
odabrao zbog pretpostavke da u skorije vrijeme neće biti veći broj radnih mjesta od onoliko
koliko ovaj tip dozvoljava.
Ime, Prezime, obrazovanje - varchar(20) - varijabibilni alfanumerčki tip – sa
maksimalnom dužinom od 20 karaktera, jer mislim da neću naići na ime ili prezime veće od
20 znakova. Ovdje sam odabrao varchar iz razloga što želim da uštedim na memoriji, jer on
zauzima onoliko bajtova koliki je broj znakova za razliku od char koji zazuzima punu
vrijednost.
Plata – decimal (6,2) – prva cifra označava ukupan broj cifara, a druga broj
decimalnih mjesta iza decimale tačke.
10
3.2 Uvezivanje tabela – dijagram
Slika 11.
Ovdje su prikazane sve veze među tabelama i one su jedan prema više i ostvarene su
pomoću Primarnog ključa (Primary Key). „Primary Key“ ograničenje koje nam osigurava da
će nam vrijednosti u navedenoj koloni biti jedinstvene.
SQL DDL
(engl. Data Definition Language)
CREATE - kreiranje objekata baze
DROP - uklanjanje objekata baze
ALTER - izmjena definicije objekata baze
SQL DCL
(engl. Data Control Language)
GRANT - definiranje prava pristupa podacima
REVOKE - uklanjanje definicije prava pristupa podacima
11
SQL DCL
(engl. Data Control Language)
SELECT - nam vraca skup rezultata iz zapisa jedne ili vise
tabele
UPDATE - koristi se za promjenu vrijednosti u postojecem redu
ili redovima
INSERT - koristi se za unosenje podataka u tabelu, red po red;
vrijednosti koje se unose moraju biti istog tipa podataka kao
polja u koja ih unosimo i moraju odgovarati velicini kolone
DELETE - koristi se za brisanje podataka
5.UPITI
Primjer 1.
Kreiranje tabele
Slika 12.
Primjer 2.
Brisanje tabele
Primjer 3.
Izmjena postojećih atributa
12
ALTER TABLE radnik ALTER COLUMN ime CHAR(15);
Primjer 4.
Slika 13.
Na ovome upitu koristio sam aliase (radnik# sifra_radnika) koji nam služe da
određenu kolonu imenujemo prilikom izvršavanja naredbe select i naredbu order by koja služi
za sortiranje podataka po određenoj koloni.
Primjer 5.
select*
from radnik
where ime='drago'
Slika 14.
Ovdje sam izvršio restrikciju, tj. izdvajanje samo onih redova koji zadovoljavaju kriterijum
koji sam zadao. Select * nam služi da ispišemo sve kolone iz zadane tabele.
Primjer 6.
Promjena vrijednosti u postojecem redu ili redovima
13
update radnik
set plata=plata -200
where radnik#=6
Primjer 7.
Primjer 8.
6.Spajanje
Spajanja služe da bismo kombinovali podatke iz više tabela. Postoje 4 vrste spajanja:
Primjer 7.
select
ime,prezime,naziv_vozila,registarski_broj,predjeni_kilometri,ut
roseno_goriva,mjesec
from radnik
inner join vozila
on vozila.radnik#=radnik.radnik#
inner join potrosnja
on potrosnja.vozilo#=vozila.vozilo#
inner join mjesec
on mjesec.mjesec#=potrosnja.mjesec#
14
Slika 15.
Ovdje sam izvršio spajanje više tabela i podataka i time dobio rezultate u kojima sam
prikazao željene detalje o svakom zaposlenom.
Primjer 8.
Slika 16.
Umjesto da izvršim projekciju imena i prezima pojedinačno, ja sam ih spojio u jednu kolonu
ime i prezime.
15
7.Relacioni operatori
Postoje sljedeći relacioni operatori:
= jednako
< manje
> veće
>< različito
<= manje jednako
>= veće jednako
Ostali operatori: IN, LIKE, BETWEEN, ...
Primjer.9
select plata 'Plata u KM',ime+' '+prezime Zaposleni
from radnik
where plata >600
order by 'Plata u KM' asc
Slika 17.
Ovdje sam koristio operator „>“ da bih izdvojio sve zaposlene sa platom većom od 600 KM i
izvršio sortiranje rezultata po koloni „Plata u KM“ u rastućem redoslijedu.
Primjer. 10
select naziv_vozila,registarski_broj,ime,prezime
from radnik
inner join vozila
on vozila.radnik#=radnik.radnik#
where vozilo#=4 or vozilo#=11
16
Slika 18.
Ovdje sam koristio „or“ da bih izdvojio zaposlene koji voze vozila cija je sifra 4 i 11
Primjer. 11
select naziv_vozila,registarski_broj,ime,prezime
from radnik
inner join vozila
on vozila.radnik#=radnik.radnik#
where vozilo# between 4 and 11
Slika 19.
Ovdje sam koristio naredbu “between” da bih izdvojio sve zaposlene koji voze vozila cija je
sifra izmedju 4 I 11.
17
Primjer.12
SELECT min(plata) 'Najmanja Plata',
max(plata) 'Najveæa Plata',
avg(plata) 'Prosjeèna Plata'
FROM radnik
Slika 20.
Ovdje sam koristio standardne funkcije „min“,“max“ i „avg“ da bih dobio najmanju platu,
najvecu plati i prosjecnu platu svih radnika
Primjer. 13
Načiniti upit koji će ispisati imena radnika cije je obrazovanje električar
select ime,prezime
from radnik
where obrazovanje='elektrièar'
Slika 21.
18
Primjer 14.
Naciniti upit koji će nam ispisati nazive vozila I utrošeno gorivo za mjesec januar.
select naziv_vozila,utroseno_goriva
from potrosnja
inner join vozila
on potrosnja.vozilo#=vozila.vozilo#
where mjesec#='1'
Slika 22.
Primjer 15.
Načiniti upit koji će nam ispissati imena radnika čije prezime počinje sa Š.
select prezime,ime
from radnik
where prezime like 'š%'
Slika 23.
19
Primjer 16.
Načiniti upit koji će nam ispisati ime, prezime, naziv vozila, registarski broj, predjeni kilometri
utrošeno gorivo, mjesec za vozilo broj 5.
select (utroseno_goriva/predjeni_kilometri*100)prosjek,
ime,prezime,naziv_vozila,registarski_broj,predjeni_kilometri,utroseno_goriv
a,mjesec
from radnik
inner join vozila
on vozila.radnik#=radnik.radnik#
inner join potrosnja
on potrosnja.vozilo#=vozila.vozilo#
inner join mjesec
on mjesec.mjesec#=potrosnja.mjesec#
where vozila.vozilo#=5
Slika 24.
20