Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 17

Tipovi SQL klauzule

JOIN
Tipovi SQL klauzule JOIN
 Setovi podataka nastali kao rezultat
korišćenja WHERE klauzule se ne mogu
ažurirati, što se primjenom jednog od tri tipa
JOIN klauzule može prevazići, odnosno
zahtjevima za unutrašnjim INNER JOIN ili
nekim od spoljašnjih slaganja LEFT JOIN,
odnosno RIGHT JOIN. Shvatanje ovog
slaganja u mnogome zavisi od vašeg
poimanja relacije, jer se u svojstvima
odnosne relacije (pored ostalog) deklariše i
jedan od ovih oblika slaganja.
INNER JOIN
 klauzula INNER JOIN može se koristiti za
kreiranje rezultujućeg seta podataka koji sadrži
samo one slogov koji odgovaraju jedni drugima u
obe tabele, kao npr. kod upita
SELECT Artikli.ArtikalID, Artikli.Sifra, DostavniceStavke.Cena,
DostavniceStavke.Komada
FROM Artikli INNER JOIN DostavniceStavke ON Artikli.ArtikalID =
DostavniceStavke.ArtikallD;
gdje se zahtjeva jednakost polja Artikli.ArtikalID i [DostavniceStavke].ArtikalID.
LEFT JOIN
Klauzula INNER JOIN vraća samo one redove koji imaju
odgovarajuću vrijednost jednaku u obje tabele, dok načini
spoljnjeg povezivanja daju kao rezultat sve slogove podataka
koji vraćaju vrijednost sa jedne strane povezivanja, bez obzira
da li postoji odgovarajući slog sa druge strane koja se povezuje.
Klauzula LEFT JOIN će vratiti sve slogove iz prve tabele u listi
(tabela sa lijeve strane) i odgovarajuće slogove iz tabele sa
desne strane, ali samo one koji imaju odgovarajuću vrijednost u
ovoj koloni, kao u primjeru
SELECT DostavniceStavke.ArtikalID, Artikli.PocetnoStanje
FROM Artikli LEFT JOIN DostavniceStavke ON Artikli.ArtikalID =
DostavniceStavke.ArtikalID;
RIGHT JOIN
Ova klauzula funkcioniše na sličan način kao
prethodna, samo što se rezultujući set podataka
bazira na drugoj (desnoj) tabeli, a koristi se na isti
način.

SELECT Artikli.Artikal, OtpremniceStavke.Komada,


Otpremnice.DatumOTP
FROM Otpremnice INNER JOIN (Artikli RIGHT JOIN
OtpremniceStavke ON Artikli.ArtikalID =
OtpremniceStavke.ArtikalID) ON
Otpremnice.OtpremnicaID =
OtpremniceStavke.OtpremnicaID ORDER BY
Artikli.Artikal;
UNION upiti

 Ova ključna riječ SQL-a omogućava


ujedinjenje dvije tabele ili dva SQL upita koji
sadrže slične podatke, ali nisu u relaciji.
UNION vraća set podataka koji nije moguće
ažurirati, pa su oni zgodni za izradu prikaza
na ekranu, izvještaja, kao i za pripremu
podataka za statističke prikaze i grafikone.
Union tip upita je jedan od onih koji mogu da
se dizajniraju (kreiraju) samo u SQL View-u.
Primjer
U slijedećem primjeru upit daje set podataka sa
ujedinjenjem tabela Dobavljaci i Kupci
SELECT Dobavljaci.Dobavljac,
Dobavljaci.KontaktOsoba, Dobavljaci.Adresa
FROM Dobavljaci
UNION SELECT Kupci.Kupac,
Kupci.KontaktOsoba, Kupci.Funkcija FROM
Kupci;
(Vježba: Napraviti union upit za bazu biblioteka
sa dobavljačima i korisnicima)
Akcioni upiti
Akcioni upiti se razlikuju od dosada spomenutih
po tome što mijenjaju podatke u bazi. Mogu
se podijeliti na:
 Upiti za ažuriranje (UPDATE)
 Upiti za dodavanje (APPEND)
 Upiti za brisanje (DELETE)
 Upiti za kreiranje tabela (MAKE-TABLE)
UPOZORENJE
Akcioni upiti su veoma brzi i mogu nanijeti mnogo štete
ako nisu tačni, tako da se mora imati na umu
slijedeće:
 Uvijek napravite rezervnu kopiju podataka prije
pokretanja akcionog upita
 Kao dodatnu mjeru opreza, možete dizajnirati
SELECT upit koji odgovara akcionom i njega prvo
isprobati
 Akcioni upiti se pokreću dvostrukim klikom na njegov
naziv ili klikom i Open. Rezultat možete pregledati
samo kad otvorite bazu.
Upiti za ažuriranje
Upiti za ažuriranje omogućavaju brzu promjenu svih ili
samo dijela podataka. Da bi kreirali akcioni UPDATE
upit izaberite:
1. Query->Update Query iz menija.
2. Dodajte tabele, uključite polja koja želite da ažurirate i
postavite kriterije za selektovanje zapisa koji će se
ažurirati, kao u slučaju Select upita.
3. Unesite novu vrijednost u ćeliju Update To za svako
polje koje želite promijeniti ili unesite izraz koji će
izračunati novu vrijednost.
4. Kliknite na dugme Query View da bi ste vidjeli zapise
koji će biti ažurirani, ili izaberite View->Datasheet View
5. Vratite se u prozor za dizajniranje i kliknite na dugme
Run
Upiti za dodavanje
Upit za dodavanje (Append upit) kopira neke, ili
sve zapise iz jedne tabele na dno druge
tabele. Ovaj upit je veoma podesan kada
koristite posebne tabele sa sličnom
strukturom.
Kreiranje Append upita
1. Iz menija izabrati Query->Append Query, nakon
toga dobit ćete dijalog za izbor tabele.
2. Ako se tabela nalazi u istoj bazi izaberite tabelu
inače izaberite bazu pa onda tabelu
3. Dodajte tabelu sa zapisima koji će biti dodati drugoj
tabeli u mrežu upita. Dodajte polja u mrežu upita,
postavite kriterij za selektovanje zapisa kao kod
Select upita . Uključite polja koja želite da kopirate i
polja koja su potrebna za kriterijum za selekciju.
4. Kliknite na Query View da bi ste vidjeli promjene.
Podesite upit i pregledajte rezultate
5. Izaberite Query->Run
Napomene
 Kada dizajnirate Append upit, radite sa izvornom tabelom. Zapisi se
kopiraju (ne premještaju) iz izvorne tabele u ciljnu
 Dvije tabele moraju da imaju sličnu strukturu i nazive polja, ali ne
moraju biti identične
 Ako izvorna tabela ima više polja od ciljne, dodatna polja se ignorišu
 Ako izvorna tabela ima manje polja od ciljne, odgovarajuća polja se
popunjavaju, a dodatna ostaju prazna
 Ako tabele imaju identičnu strukturu, možete koristiti * umjesto
naziva polja
 Ako ciljna tabela ima primarni ključ, rezultati će biti sortirani po tom
ključu
 Da bi Access dodijelio nove AutoNumber vrijednosti zapisima koji se
dodaju u ciljnu tabelu isključite AutoNumber polje (ako postoji) iz
QBE mreže
Upiti za brisanje
Upiti za brisanje (Delete upiti) omogućavaju
brisanje grupe zapisa koji zadovoljavju
određeni kriterij u jednom potezu.
Procedure za postavljanje Delete upita zavise
od toga da li brišete zapise samo iz jedne
tabele ili iz više tabela između kojih postoje
relacije jedan-prema-više.
UPOZORENJE: Izvršenje Delete upita se ne
može vratiti. Obavezno pogledajte zapise koji
će biti obrisani prije pokretanja upita.
Brisanje zapisa iz jedne tabele
1. Izaberite Query->Delete Query
2. Dodajte potrebne tabele u upit, uključite polja koja
će se koristiti za selektovanje specifičnih zapisa i
postavite kriterijum za selektovanje zapisa kao kod
Select upita
3. Izvedite dupli klik na * u tabelama u kojima želite da
izbrišete zapise, ako postavljate upit za tabele u
relacijama jedan-prema-jedan
4. Izaberite View->Datasheet View za pregledanje
promjena
5. Vratite se u prozor za dizajniranje i izaberite Query-
>Run

You might also like