Gotovi Seminarski Diplomski Maturalni Master ili Magistarski

Puna verzija: Oracle baza podataka
Trenutno pregledate Lite verziju foruma. Pogledajte punu verziju sa odgovarajućim oblikovanjima.
Maturski, seminarski i diplomski radovi iz informatike.

Ovo je kratak kurs o struktuiranom upitnom jeziku (poznatom i kao SQL) i predstavlja pionirski poduhvat jer je to prvi takav kurs koji se može naći na Internetu. SQL omogućava korisnicima pristup podacima u sistemima za upravljanje relacionim bazama podataka, kao što su Oracle, Sybase, Informix, Microsoft SQL Server, Access i drugi, tako što dopušta korisnicima da opišu podatke koje žele da dobiju. SQL takođe omogućava korisnicima da definišu podatke u nekoj bazi podataka i da manipulišu tim podacima. U ovom kursu biće opisano kako se koristi SQL, a to će sve biti potkrepljeno primerima. SQL koji se koristi u ovom dokumentu predstavlja ANSI verziju tog jezika, ili standardni SQL, i nijedna posebna mogućnost SQL-a koja je specifična za sisteme za upravljanje bazama podataka neće se razmatrati do odeljka „Nestandardni SQL“. Preporučujemo da odštampate ovaj dokument da biste lakše mogli da pogledate prethodne primere na koje se ukazuje u tekstu.

Sadržaj
Osnove naredbe SELECT
Relacioni operatori
Složeni uslovi
Operatori IN i BETWEEN
Operator LIKE

Spajanje tabela
Ključevi
Obavljanje spajanja
Klauzula DISTINCT i eliminacija duplikata
Pseudonimi i IN podupiti

Agregatne funkcije
Pogledi
Formiranje novih tabela
Menjanje tabela
Dodavanje podataka
Brisanje podataka
Ažuriranje podataka

Indeksi
Klauzule GROUP BY i HAVING
Još o podupitima
Klauzule EXISTS i ALL
Klauzula UNION i spoljašnje spajanje
Embedded SQL
Česta pitanja o SQL-u
Nestandardni SQL
Pregled sintakse naredbi
Vežbanja
Važniji sajtovi o SQL-u, bazama podataka i sličnim temama

Osnove naredbe SELECT

U relacionoj bazi podataka podaci se smeštaju u tabelama. Neka tabela, na primer, mogla bi da sadrži jedinstveni matični broj građana, imena, prezimena i adrese zaposlenih:

TabelaAdresaRadnika
JMBG Ime Prezime Adresa Grad Republika
512687458 Đorđe Petrović Kralja Petra 9 Beograd Srbija
758420012 Marija Simić Bul Nikole Tesle 22 Jagodina Srbija
102254896 Savo Jovanović Njegoševa 17 Podgorica Crna Gora
876512563 Svetlana Aćimović Laze Lazarevića 10 Subotica Srbija

Pretpostavimo da želite, recimo, da vidite adrese svih zaposlenih. Da biste to postigli, koristite naredbu SELECT:

SELECT Ime, Prezime, Adresa, Grad, Republika
FROM TabelaAdresaRadnika;

Rezultat ovog upita u bazu podataka je:
Ime Prezime Adresa Grad Republika
Đorđe Petrović Kralja Petra 9 Beograd Srbija
Marija Simić Bul Nikole Tesle 22 Jagodina Srbija
Savo Jovanović Njegoševa 17 Podgorica Crna Gora
Svetlana Aćimović Laze Lazarevića 10 Subotica Srbija

Da objasnimo sada šta ste upravo uradili: tražili ste sve podatke u tabeli TabelaAdresaRadnika – preciznije, tražili ste kolone pod nazivom Ime, Prezime, Adresa, Grad, Republika. Obratite pažnju da imena kolona i tabela ne sadrže razmake – ona se moraju navesti kao jedna reč, kao i da se naredba završava tačkom i zarezom (Wink. Opšti oblik naredbe SELECT kojom se dobijaju svi redovi u tabeli je:

SELECT ImeKolone, ImeKolone, ...
FROM ImeTabele;

Da biste dobili sve kolone neke tabele bez navođenja svih imena kolona, koristite:

SELECT * FROM ImeTabele;

Svaki sistem za upravljanje bazama podataka i softver za rad sa njima ima različite metode za prijavljivanje na bazu podataka i upisivanje SQL naredbi; potražite pomoć lokalnog administratora da biste se prijavili sistemu i mogli da koristite SQL.

Uslovna selekcija podataka

Da bismo dalje razmotrili naredbu SELECT, pogledajmo drugi primer (hipotetičke) tabele:

TabelaPrimanjaRadnika
IDRadnika Plata Prinadležnosti Položaj
010 75000 15000 rukovodilac
105 65000 15000 rukovodilac
152 60000 15000 rukovodilac
215 60000 12500 rukovodilac
244 50000 12000 činovnik
300 45000 10000 činovnik
335 40000 10000 činovnik
400 32000 7500 pripravnik
441 28000 7500 pripravnik

Relacioni operatori

U SQL-u postoji šest relacionih operatora i posle njihovog predstavljanja videćemo kako se koriste:
= Jednako
< ili != (videti priručnik) Različito
< Manje
> Veće
<= Manje ili jednako
>= Veće ili jednako

Da bi se prikazali samo oni redovi iz tabele koji zadovoljavaju određene kriterijume, koristi se klauzula WHERE. Ona se može najlakše razumeti ukoliko se pogleda nekoliko primera.

Ukoliko želite da dobijete ID brojeve onih zaposlenih koji zarađuju preko 50.000, koristite sledeću naredbu:
SELECT IDRADNIKA
FROM TABELAPRIMANJARADNIKA
WHERE PLATA >= 50000;

Obratite pažnju da se koristi znak >= (veće ili jednako), pošto smo želeli da izdvojimo one zaposlene koji zarađuju više od 50,000, ili jednako 50,000, i to prikazano zajedno. Kao rezultat dobijamo:
IDRADNIKA
------------
010
105
152
215
244

Opis klauzule WHERE, odnosno deo PLATA >= 50000, naziva se uslov (operacija koja kao rezultat daje vrednost True (tačno) ili False (netačno)). Isti tip operacije može se primeniti na tekstualne kolone:
SELECT IDRADNIKA
FROM TABELAPRIMANJARADNIKA
WHERE POLOŽAJ = 'rukovodilac';

Ova naredba prikazuje ID brojeve svih rukovodilaca. Generalno, u slučaju tekstualnih kolona, koristite operatore jednako ili različito, i obavezno ceo tekst koji se pojavljuje u naredbi navedite unutar apostrofa (').

Složeni uslovi

Operator AND kombinuje dva ili više uslova i prikazuje neki red tabele samo ukoliko podaci tog reda zadovoljavaju sve navedene uslove (tj. svi uslovi su tačni). Na primer, da biste prikazali sve činovnike koji zarađuju više od 40.000, koristite naredbu:
SELECT IDRADNIKA
FROM TABELAPRIMANJARADNIKA
WHERE PLATA > 40000 AND POLOŽAJ = 'činovnik';

Operator OR kombinuje dva ili više uslova, ali prikazuje red ukoliko je neki navedeni uslov zadovoljen. Da biste zajedno prikazali one zaposlene koji zarađuju manje od 40.000 ili su im prinadležnosti manje od 10.000, koristite ovaj upit:
SELECT IDRADNIKA
FROM TABELAPRIMANJARADNIKA
WHERE PLATA < 40000 OR PRINADLEŽNOSTI < 10000;

Operatori AND i OR mogu da se kombinuju, na primer:
SELECT IDRADNIKA
FROM TABELAPRIMANJARADNIKA
Referentni URL