Presentation is loading. Please wait.

Presentation is loading. Please wait.

Baze podataka Uvod u SQL Jezik relacione BP Predavanja.

Similar presentations


Presentation on theme: "Baze podataka Uvod u SQL Jezik relacione BP Predavanja."— Presentation transcript:

1 Baze podataka Uvod u SQL Jezik relacione BP Predavanja

2 Upiti (Queries) Koriste se za izdvajanje zapisa iz jedne ili više tabela i to po određenom kriterijumu kojim rešavamo neki konkretan problem. Često se koriste kao izvori podataka za obrasce i izveštaje. Bazirani na SQL-u

3 SQL Structured Query Language
Strukturni upitni jezik za RBP Razvio ga je IBM u okviru projekta System R Danas je SQL ugrađen u sve vodeće SUBP ANSI standard American National Standards Institute Razvoj SQL-a traje i danas Predavanja

4 SQL Svaki programski jezik obuhvata podatke i manipulacije nad tim podacima SQL-jezik: Objekti manipulacije su relacije Rezultati manipulacija su relacije Terminologija: relacija  tabela n-torka  red (vrsta) Vrednosti u n-torkama za jedan atribut  kolona SQL se zasniva na relacionom računu n-torki Predavanja

5 SQL SQL sadrži naredbe za:
definisanje relacija (shema) ažuriranje podataka (unos, izmena, brisanje) postavljanje upita sortiranje i formatiranje ispisa aritmetičke operacije nad podacima definisanje pogleda (view) kontrolu sigurnosti itd.... SQL podržava 3 osnovne funkcije BP: definicije, manipulacije i kontrolu Predavanja

6 SQL - sintaksa - select prezime from osoba where ime = ‘Marko’;
SQL ne pravi razliku između velikih i malih slova (case insensitive). Sledeće dve naredbe su jednake: select prezime from osoba where ime = ‘Marko’; SELECT prezime FROM osoba WHERE ime = ‘Marko’; Komentari: -- ovo je komentar /* ovo je komentar koji se proteže u više redova */ Za nazive (imena) se ne smeju koristiti rezervisane reči Predavanja

7 SQL - sintaksa - SELECT * FROM student WHERE brind ≤ 100;
Separator naredbi: naredba1; naredba2; FORMAT naredbi: Sledeće naredbe su ispravno napisane SELECT * FROM student WHERE brind ≤ 100; SELECT * FROM student WHERE brind ≤ 100; SELECT * FROM student WHERE BrInd ≤ 100; Predavanja

8 UPIT - SELECT - Koje podatke tražimo kao rezultat,
Najznačajnija i najčešće korišćena SQL naredba za manipulaciju podacima Kod svakog upita zadajemo (u principu): Koje podatke tražimo kao rezultat, Iz kojih tabela to tražimo, Koji uslov treba da zadovolje podaci, da bi bili uključeni u rezultat U kom redosledu želimo prikaz podataka Predavanja

9 Prost upit nad jednom tabelom
Podrazumeva se naredba upita SELECT, nad jednom tabelom Kao rezultat daje niz redova (ili jedan ili nijedan) koji zadovoljavaju eventualno zadati uslov SELECT lista – podrazumeva se specifikacija podataka u rezultatu upita Specifikacija – zadata jednim ili sa više izraza odvojenih zarezima (R-lista) Predavanja

10 Prost upit nad jednom tabelom
Sintaksa SELECT * {[ALL  DISTINCT] R-Lista} FROM ImeTabele [WHERE R-Predikat] [ORDER BY ImeKolone [DESC] {, ImeKolone [DESC]} …]; * - Specijalni slučaj R-liste, kada u rezultat želimo da uključimo sve kolone tabele ALL – iz rezultata ne uklanja istovetne redove, DISTINCT – suprotno. Podrazumeva se ALL. R-Lista se zadaje kao jedan ili više R-Izraza, pored naziva kolone javljaju se i konstante Predavanja

11 Prost upit nad jednom tabelom
Klauzula FROM (“odakle”), specificira se ImeTabele. To je ime osnovne tabele. Ovo je obavezna klauzula. R_Predikat , uslov prikazivanja rezultata, to je logički izraz izračunljiv nad svakim pojedinim redom tabele. Rezultat upita se dobija samo za one vrednosti R_Predikata koje daju istinitosnu vrednost. Najčešće je to relacioni izraz (>,<,=,…) sa kolonama, a sa desne strane može se javiti i konstanta ORDER BY – daje željeni redosled prikaza rezultata. Podrazumeva se rastući redosled (ASC). U suprotnom se navodi DESC uz odgovarajuću kolonu. Uvek je poslednja klauzula u SELECT bloku. Predavanja

12 Prost upit nad jednom tabelom
Najjednostavniji mogući SQL upit je u formi: SELECT * FROM ImeTabele; Ova naredba prikazuje sve redove tabele čije je ime navedeno iza FROM klauzule U svakom redu prikazuju se vrednosti svih kolona, onim redom kako je to zapisano u datoteci Kod upita se obično traži prikaz samo određenih kolona, ili prikaz svih kolona u redosledu koji je drugačije određen. Predavanja

13 Prost upit nad jednom tabelom
Upit za prikaz cele tabele u željenom redosledu SELECT * FROM Student ORDER BY Ime; Student BrInd Ime Prezime 1 Marko Marković 2 Petar Petrović 3 Aleksa Perić BrInd Ime Prezime 3 Aleksa Perić 1 Marko Marković 2 Petar Petrović SELECT Predavanja

14 Prost upit nad jednom tabelom
Upit za prikaz samo jedne kolone iz tabele i bez eliminacije duplikata SELECT Fakultet FROM Student; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan Fakultet PFB FIM FTHM SELECT Predavanja

15 Prost upit nad jednom tabelom
Upit za prikaz samo jedne kolone iz tabele i sa eliminacijom duplikata : SELECT DISTINCT Fakultet FROM Student ; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan Fakultet PFB FIM FTHM SELECT Predavanja

16 Prost upit nad jednom tabelom
Upit za prikaz samo jedne kolone iz tabele i sa eliminacijom duplikata , a u željenom redosledu: SELECT DISTINCT Fakultet FROM Student ORDER BY Fakultet ; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan Fakultet FIM FTHM PFB SELECT Predavanja

17 Prost upit nad jednom tabelom
Upit za prikaz više kolona sa zadavanjem uslova: SELECT BrInd, Ime, Prezime FROM Student WHERE Fakultet=‘FIM’; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan BrInd Ime Prezime 2 Petar Petrović 3 Aleksa Perić SELECT Predavanja

18 Prost upit nad jednom tabelom
Upit za prikaz dve kolone sa zadavanjem uslova, a u željenom redosledu: SELECT BrInd, Ime, Prezime FROM Student WHERE Fakultet=‘FIM’ ORDER BY Ime; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan BrInd Ime Prezime 3 Aleksa Perić 2 Petar Petrović SELECT Predavanja

19 Prost upit nad jednom tabelom sa izvedenim rezultatom
Upit za prikaz ukupnog broja studenata (odgovara broju redova u tabeli Student) SELECT COUNT(*) FROM Student ; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan SELECT 6 Predavanja

20 Prost upit nad jednom tabelom sa izvedenim rezultatom
Upit za prikaz broja fakulteta na koje su upisani studenati (odgovara broju različitih vrednosti kolone Fakultet u tabeli Student) SELECT COUNT(DISTINCT Fakultet) FROM Student ; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan SELECT 3 Predavanja

21 Prost upit nad jednom tabelom sa izvedenim rezultatom
Upit za prikaz broja studenata koji su upisali FTHM SELECT COUNT(*) FROM Student WHERE Fakultet=‘FTHM’; Student BrInd Ime Prezime Fakultet 1 Marko Marković PFB 2 Petar Petrović FIM 3 Aleksa Perić 4 Marić FTHM 5 Lazić 6 Jovan SELECT 1 Predavanja

22 Prost upit nad jednom tabelom sa izvedenim rezultatom
Upit za prikaz sume cena svih proizvoda: SELECT SUM(Cena) FROM Racun; Racun SifP NazivP Kolicina Cena 005 P1 1 1800,00 010 P2 6 300,00 020 P3 5 250,00 001 2 1100,00 003 4 600,00 011 3 700,00 SELECT Predavanja

23 Prost upit nad jednom tabelom sa izvedenim rezultatom
Upit za prikaz minimalne i maksimalne cene iz računa: SELECT MIN(Cena), MAX(Cena) FROM Racun; Racun SifP NazivP Kolicina Cena 005 P1 1 1800,00 010 P2 6 300,00 020 P3 5 250,00 001 2 1100,00 003 4 600,00 011 3 700,00 SELECT Predavanja

24 Prost upit nad jednom tabelom sa izvedenim rezultatom
Upit za prikaz sume i proseka cena za proizvod P1: SELECT SUM(Cena), AVG(Cena) FROM Racun WHERE NazivP= ‘P1’; Primedba: rezultat AVG funkcije preuzima tip podataka od argumenta (tip kolone) Racun SifP NazivP Kolicina Cena 005 P1 1 1800,00 010 P2 6 300,00 020 P3 5 250,00 001 2 1100,00 003 4 600,00 011 3 700,00 SELECT Predavanja

25 Klauzula GROUP BY (grupisanje slogova na osnovu nekog kriterijuma)
Prikazi najmanju,najvecu,srednju platu i broj zaposlenih po odeljenjima: SELECT MIN(plata) AS najmanja, MAX(plata) AS najveca, ROUND(AVG(plata),2) AS srednja, COUNT(*) AS broj, brod$ FROM RADNIK GROUP BY brod$;

26 Klauzula HAVING (uslovi u okviru grupa)
Prikaži koje poslove obavlja više od 1 radnika unutar svakog odeljenja: SELECT brod$, posao, count(*) AS broj zaposlenih FROM radnik GROUP BY brod$, posao HAVING count(*)>1;

27 Upiti nad više tabela ImeTabele.ImeKolone
Za kolone koje se nalaze u više tabele obavezno je navođenje ImeTabele.ImeKolone Predavanja

28 Upiti nad više tabela Primeri: Upit koji daje nazive naslova i nazive njihovih oblasti (spajaju se tabele Naslov i Oblast po uslovu jednakosti kolona SifO) SELECT N.Naziv, O.Naziv FROM Naslov N, Oblast O WHERE N.SifO=O.SifO ORDER BY N.Naziv ; Predavanja

29 Klauzule WHERE i HAVING
Predikati – to su relacioni izrazi, koji se mogu kombinovati Predikati: prosti i složeni Prost predikat: elementarni logički izraz izračunljiv nad svakim redom neke tabele Složen predikat: formira se od prostih, primenom logičkih operatora AND, OR i NOT Forme prostih predikata: Izraz1 {<|<=|=|<>|>=|>} Izraz2 ispituje da li su vrednosti navedenih izraza u zadatom odnosu Predavanja

30 Klauzule WHERE i HAVING
Izraz [NOT] BETWEEN Izraz1 AND Izraz2 ispituje da li je (ili nije) vrednost izraza u zadatim granicama. Kolona IS [NOT] NULL ispituje da li je (ili nije) vrednost kolone NULL Dva specijalna znaka (džokeri): ‘?’ bilo koji znak, ‘*’ bilo koji broj znakova Predavanja

31 Klauzule WHERE i HAVING
Upit koji daje nazive svih naslova u kojima se nalazi reč “jezik” SELECT Naziv FROM Naslov WHERE Naziv LIKE ‘*jezik*’; Predavanja

32 Klauzule WHERE i HAVING
Upit koji daje šifre knjiga koje odgovaraju naslovima šifara “RBP0” i “RK00” SELECT SifK FROM Knjiga WHERE SifN IN (‘RBP0’,’RK00’); Upit koji daje šifre naslova za sve knjige osim za one sa šiframa ‘001’, ‘002’, ‘003’ SELECT DISTINCT SifN FROM Knjiga WHERE SifK <> ALL (‘001’,’002’, ‘003’); Predavanja

33 Upiti sa podupitima (ugnježdeni upiti)
Definicija podupita: SELECT naredba koja se nalazi u sklopu WHERE i HAVING klauzula Predavanja

34 Upiti sa podupitima (ugnježdeni upiti)
Izlistati spisak imena zaposlenih koji rade na Dorcolu. SELECT RADNIK.ime, RADNIK.[brod$] FROM RADNIK WHERE RADNIK.brod$=(SELECT odeljenje.brod# FROM ODELJENJE WHERE mesto='Dorcol'); Predavanja

35 SQL naredbe ažuriranja
Deo SQL jezika kojim se vrši izmena u tabelama čine tri naredbe: INSERT: naredba za unošenje novih redova u tabelu UPDATE: naredba za izmene redova u tabeli DELETE: naredba za uklanjanje redova iz tabele Naredbe ažuriranja se uvek odnose na jednu tabelu Predavanja 35

36 INSERT u koju tabelu ubacujemo, za koje kolone dajemo vrednosti,
Uz ovu naredbu mora se navesti: u koju tabelu ubacujemo, za koje kolone dajemo vrednosti, vrednosti koje ubacujemo. Sintaksa naredbe: INSERT INTO ImeTabele (ListaKolona) VALUES (ListaKonstanti); Ako nije navedena ListaKolona iza ImeTabele ubacuju se vrednosti za sve kolone Predavanja 36

37 UPDATE u kojoj tabeli se vrše izmene,
Uz ovu naredbu mora se navesti: u kojoj tabeli se vrše izmene, za koje kolone u redu menjamo vrednosti, pod kojim uslovima menjamo vrednosti. Sintaksa naredbe UPDATE koja sadrži sve navedene elemente: UPDATE ImeTabele SET atribut1=vrednost1, atribut2=vrednost2, WHERE lista uslova; Predavanja 37

38 DELETE iz koje tabele se vrši uklanjanje,
Uz ovu naredbu mora se navesti: iz koje tabele se vrši uklanjanje, pod kojim uslovima se uklanja neki red. Sintaksa naredbe: DELETE FROM ImeTabele WHERE lista uslova Predavanja 38

39


Download ppt "Baze podataka Uvod u SQL Jezik relacione BP Predavanja."

Similar presentations


Ads by Google