Prva godina
puskice OET 1
puskice OET 2
puskice Osnovi elektronike
puskice Matematika 1
puskice Matematika 2
puskice Inženjerska matematika
puskice ORT 1
puskice ORT 2
puskice Programiranje 1
puskice Fizika
puskice Engleski 1
puskice Elektronika NRT i MET
puskice Internet servisi
puskice Osnovi menadžmenta
puskice Aplikativni softver
puskice Osnovi televizije
puskice Osnovi elektroenergetike
puskice Elektrotehnički materijali i komponente
puskice Marketing
puskice Sociologija
puskice Osnovi audiotehnike
puskice Arhitektura i orgranizacija računara 2
Druga godina
puskice Digitalna obrada signala
puskice Mikroračunari
puskice Upravljanje projektima
puskice Digitalne telekomunikacije
puskice Baze podataka
puskice Računarske mreže
puskice Digitalna Integrisana Elektronika
puskice Programiranje 2
puskice Objektno programiranje
puskice Elektronsko poslovanje 1
puskice Elektronsko poslovanje 2
puskice Trgovinsko pravo
puskice Montaža i servisiranje računara
puskice Internet tehnologije
puskice Kompjuterska animacija 1
puskice Digitalne multimedije 1
puskice Digitalne multimedije 2
puskice Analogna elektronika
puskice Telekomunikacije
puskice Elektromotorni pogoni
puskice Električne instalacije i osvetljenja
puskice Električne mašine 1
puskice Električne mašine 2
puskice Osnovi animacije
puskice Komunikologija
puskice Elementi elektroenergetskih sistema
puskice Upravljanje troškovima
puskice Elektrane i razvodna postrojenja
puskice Midi sistemi
puskice Mediji masovne komunikacje
puskice Web dizajn
puskice Studijska audiotehika
Treća godina
puskice Engleski 2
puskice Inteligentne računarske tehnologije
puskice Klijent server sistemi
puskice Operativni sistemi 1
puskice Operativni sistemi 2
puskice Internet programiranje 1
puskice Internet programiranje 2
puskice Protokoli u računarskim mrežama
puskice Sigurnost u računarskim mrežama
puskice Programabilna logička kola
puskice Tehnike vizuelnog programiranja
puskice Finansijski menadžment
puskice Održavanje elektroenergetskih uređaja
puskice Programiranje u jeziku JAVA
puskice Distribucija i prodaja električne energije
puskice Ozvučenje
puskice Poslovni software
puskice Računari i periferije
puskice Softversko inzenjerstvo
Ostalo
puskice Profesori
puskice Tutoriali
puskice Top 10
puskice Pravilnik
puskice Port skener
puskice Hash generator md5 sha1
puskice SEO Google rangiranje
puskice SEO Yahoo rangiranje
puskice SEO MSN rangiranje
puskice Web servis vremenska prognoza
puskice Web servis kursna lista
puskice Web servis kursna lista za sutra
puskice Linkovi

Tutorial baze podataka 2

Tutorial

Školsku bazu za vežbanje možete preuzeti ovde (180KB)

Kao prvo moramo se upotznati sa nekoliko komandi koje ćemo koristiti za kreiranje sql upita.

SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.

Za početak ovo je sasvim dovoljno.

SELECT

To je naredba "lista atributa 1" ili naredba u kojoj se upisuju atributi odvojeni zarezom.

Atributi služe za opisivanje entiteta ili lakše rečeno za opisivanje tabele.

Atributi su u našem slucaju za tabelu radnik: IDBR, IME, POSAO, KVALIF, RUKOVODILAC, DATZAP, PREMIJA, PLATA BROD.

Dakle, u SELECT se zarezima odvajaju recimo IME, POSAO i PLATA

FROM (lista tabela)

Služi da se definise iz koje tabele se traži neki atribut iz SELECT naredbe

Dakle ovde se unose tabele koje će se koristiti, kao i definisanje skraćenica o kojima ćemo nešto kasnije pričati.

Ukoliko se izostavi FROM i naziv tabele, sistem će odgovoriti "Enter parameter value" što će značiti da sistem ne nalazi taj atribut.

SAVET: Ukoliko napišete upit i sistem odgovara sa ovakvom porukom najverovatnije je greska u nazivu atributa ili tabele.

Ako smo i to shvatili možemo da pređemo na prvi i najlakši upit a to je

1. Izlistati sve atribute u tabeli radnik

SELECT *

FROM RADNIK

Ovim upitom dobijamo gotovo sve podatke i sve atribute iz pomenute tabele.

Zvezda (*) se koristi da olaksa rad. U ovom slucaju znači da se izlistaju svi atributi (naznačeno u SELECT) iz tabele radnik (naznačeno u FROM), ali se ovaj upit mogao uraditi i na teži način kao sto je ručno pisanje svih atributa odvojeni zarezom.

2. Izlistati sva zanimanja u preduzecu

SELECT POSAO

FROM RADNIK

Ovim upitom dobijamo samo atribut POSAO i sve podatke. Kao što se može primetiti postoje više osoba sa istim zanimanjem, te je u ovom slucaju odgovor sistema sa više identicnih zanimanja. Ako ne želimo ovu pojavu, i ako želimo da nam sistem izbaci samo zanimanja koja postoje bez obzira na brojnost tog zanimanja onda treba izmedju SELECT i ATRIBUTA ubaciti komandu DISTINCT i to BEZ ZAREZA! Komanda DISTINCT sluzi za eliminisanje svih višestrukih n-torki (identičnih redova)

WHERE

Služi za neki vide selekcije i sankcija (uslova), kao i za spajanje više tabela. Ovde treba odmah napomenuti da se spajanje više tabela i ubacivanje uslova razdvaja ne zarezom kao kod SELECT komande već se koristi AND, ili OR ako se trazi samo neki od ponudjenih uslova.

Izdvajanje redova koji zadovoljavaju uslov

Izdvajanje redova koji zadovoljavaju vise uslova (AND)

Izdvajanje redova koji zadovoljavaju neki od uslova (OR)

Izdvajanje redova koji zadovoljavaju složene uslove (AND I OR)

Izdvajanje redova koja ne zadovoljavaju neke uslove (NOT, IS NOT, <>(RAZLIČIT))

Izdvajanje redova čija vrednost pripada nekoj listi vrednosti (IN)

Izdvajanje redova čija vrednost unutar nekih granica (BETWEEN, >=, <=)

 

3. Izlistati imena i posao svih zaposlenih sa kvalifikacijom VSS

SELECT IME, POSAO

FROM RADNIK
WHERE KVALIF='VSS'

NAPOMENA: Ovo je za access, u drugim verzijama sql-a umesto * se koristi %, a umesto ? se koristi _.

Novina je WHERE KVALIF='VSS' i ona govori sistemu da u odgovoru izlisata samo one redove koji u sebi kao podatak za atribut ima VSS.

To je 9 redova, koji ce imati za atribute IME i POSAO i podatke samo od onih zapolenih koji imaju podatak VSS za atribut KVALIF.

3.1 Izlistati imena koja počinju na slovo S

SELECT IME
FROM RADNIK
WHERE IME LIKE "S*"

U WHERE se sada nalazi i uslov da ime počinje sa odredjenim slovom. Naredba za tako nesto se zove LIKE “ŠTA SADRŽI" , a ako nešto ne treba da sadrži koristi se NOT LIKE "ŠTA NE SADRŽI"

Nešto se završava na slovo A. NEŠTO LIKE "*a"

Nešto se ne završava na slovo A. NEŠTO NOT LIKE "*a"

Nešto ima četvrto slovo A NEŠTO LIKE "???a"

Nešto sadrži slovo A NEŠTO LIKE "*a*"

Nešto ne sadrži slovo A NEŠTO NOT LIKE"“*a*"

Nešto je dužine 4 slova NEŠTO LIKE "????"

Nešto nije dužine 4 slova NEŠTO NOT LIKE "????"

GROUP BY (lista atributa 2)

Služi za grupisanje. Zapisuje se u SELECT komandi

4. Mesečne plate za svako odeljenje (brod)

SELECT BROD, SUM(PLATA) as [ukupne plate]

FROM RADNIK

GROUP BY BROD

Rezultat su 4 reda, sa atributom brod i ukupne plate. AS [UKUPNE PLATE] govori sistemu da u odgovoru taj atribut nazove tim imenom. Dakle ovo nije neophodno. Ukoliko se piše samo jedna rec dovoljno je AS REC, a ako se naziv sastoji od više reci onda se stavlja u velike zagrade [] .

HAVING (lista uslova2)

Služi za dodatno uslovljavanje, skoro uvek se piše zajedno sa COUNT naredbom.

Count(atribut) znači da prebroji taj atribut, i odgovor je uvek neki broj.

NAPOMENA

Ako se koristi neki atribut i agregatna funkcija (avg(prosek), sum(suma), max(maksimum), min(minimum)....) onda se podaci moraju grupisati tako sto se u GROUP BY obavezno stavlja sve iz SELECT. Bar je tako u ACCESS-u.

5. Prikazati u kom broju odeljenja radi preko 4 radnika 5.a) I koliko radnika

SELECT BROD,

FROM RADNIK

GROUP BY BROD

HAVING COUNT(BROD)>4

Ovde smo rekli da u rezltatu želimo samo brod (SELECT BROD) i to onih koji zapošljavaju vise od 4 radnika. Grupisali smo rezltate po brodu, i rekli da prebroji rezultate sa komandom COUNT(BROD) a sa HAVING smo ubacili uslov da taj broj bude veci od 4. Da smo želeli da vidimo brojeve odeljenja koji zapošljavaju između 2 i 4 kradnika trebali bi umesto >4 staviti samo bukvalan prevod na engleski. Between 2 and 4. Between uključuje i pomenute granice, za razliku od >, ali taj znak se može kombinovati sa = pa se može izvesti i bez between. Zadatak po a) je sve isto samo u SELECT treba da dodamo ,COUNT(BROD) jer smo hteli da se izlista i taj broj koji zadovoljava uslov.

ORDER BY (lista atributa 3)

Služi za sortiranje rezultata. Pored same komande ubacuje se i atribut (atributi). Ako želimo da se izlista nešto u rastućem smeru, onda se samo doda atribut, a ako se želi opedajući smer onda se pored atributa ubacuje i skracenica DESC. Rastući smer za brojeve je od 0-9, a za slova od A-Z.

6.Prikazati imena zaposlenih, platu i rezultate urediti po plati u rastućem smeru, i imenu u opadajućem smeru

SELECT IME, PLATA

FROM RADNIK

ORDER BY PLATA, IME DESC

Prvi uslov je plata pa se i ona prvo piše i to bez DESC je se traži rastući smer, pa se posle unosi drugi zahtev i to odvojen zarezom i to sa DESC naredbom jer se traži da rezultati budu u opadajućem smeru.

Ugnježdeni upit i prirodno spajanje

U ugnježdenom upitu se neki podatak izvlači iz nekog drugog upita, a kod prirodnog spajanja se podatak izvlači direktno iz tabele, ali prethodno moraju biti pravilno povezane te tabele.

Spajanje se vrši na sledeci nacin.

IMETABELE1.ATRIBUT=IMETABELE2.ATRIBUT

Važno je reći da je atribut identičan, a da se samo tabele ralikuju.

U našem slučaj postoji samo 3 povezivanja i to RADNIK.BROD=ODELJENJE.BROD and UCESCE.IDBR=RADNIK.IDBR and UCESCE.BRPROJ=PROJEKAT.BRPROJ.

Vezivanje se vrši po primarnom klucu, a redosled nije bitan, kao što nije ni bitno da li se prvo stavi TABELA1 ili TABELA 2.

7.Izlistati imena radnika koji rade u odeljenju koje se zove komercijala

SELECT IME

FROM RADNIK, ODELJENJE

WHERE BROD IN (SELECT BROD

FROM ODELJENJE

WHERE IMEOD="KOMERCIJALA" )

Nekome je možda lakse da ugnježdene upite rešava unazad. Donji upit daje broj brod-a, koji gornji upit koristi za selekciju radnika koji rade pod tim brod-om.

Prirodnim spajanjem bi to izgledalo ovako

SELECT R.IME

FROM RADNIK AS R, ODELJENJE AS O

WHERE R.BROD=O.BROD AND O.IMEOD="KOMERCIJALA"

Uvedu se skraćenice po želji, povežu se tebele po šablonu i doda se uslov koji se traži.

NAPOMENA

Ako se traži atribut samo iz jedne tabele onda je moguće to uraditi preko ugnježdenog upita, ali ako se traže atributi iz različitih tabela onda se mora koristiti prirodno spajanje.

Tabela RADNIK i PROJEKAT nisu direkto vezani, ali su povezani preko tabele UCESCE, te ako se traži nesto iz ove 2 tabele mora se pomenuti i tabela UCESCE u FROM delu i prirodno spoiti u WHERE

8. Izlistati imena radnika, posao i broj projekta koji rade na izvozu

SELECT R.IME, R.POSAO, P.BRPROJ

FROM RADNIK AS R, UCESCE AS U, PROJEKAT AS P

WHERE R.IDBR=U.IDBR AND U.BRPROJ=P.BRPROJ AND P.IMEPROJ="IZVOZ"

Vazno !

Ovim putem se izvinjavam za greške koje su možda slučajno promakle kao i za stopostotnu ispravnost teksta.
Pedja

Nazad na početak


VIŠER Vesti

[ 12.07.2013, 15.14 ] Odobrene teme diplomskih radova (NV:08.07.2013.) Link

[ 12.07.2013, 07.58 ] Stipendije i krediti za mesec jun Link

[ 11.07.2013, 11.42 ] Naknadna odbrana vežbi iz Baza podataka pred semptembarski ispitni rok Link

[ 05.07.2013, 12.56 ] Odobrene teme diplomskih radova (NV:03.07.2013.) Link

[ 04.07.2013, 20.12 ] SPECIJALNE ELEKTRIČNE INSTALACIJE-Rezultati drugog kolokvijuma Link

[ 04.07.2013, 16.23 ] SPECIJALNE ELEKTRIČNE INSTALACIJE_Rešenja zadataka_drugi kolokvijum Link

[ 03.07.2013, 11.51 ] Naknadna odbrana vežbi iz Mikroračunara - Septembar 2013 Link

[ 03.07.2013, 11.45 ] Stručna praksa (smer NRT) - Septembarski ispitni rok Link

[ 03.07.2013, 11.35 ] Stručna praksa - Smer NRT Link

[ 02.07.2013, 09.32 ] Memorijski sistemi - Rezultati predispitnih obaveza Link


Puskice i skripte VISER
SEO Optimizacija sajta | Menjačnica | Žute strane
Rolo vrata | Segmetna vrata | Garažna vrata | Aluminijumska stolarija | Alu stolarija