1 / 39

Baze podataka

Baze podataka. Uvod u SQL Jezik relacione BP. 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.

Download Presentation

Baze podataka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. SQLStructured Query Language Strukturni upitni jezikza RBP Razvio ga je IBM u okviru projekta System R Danas je SQL ugrađen u sve vodeće SUBP ANSI standardAmerican 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 - • 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 - • 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 - • 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 neuklanja istovetne redove,DISTINCT– suprotno. Podrazumeva se ALL. R-Listase 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 Student SELECT Upit za prikaz cele tabele u željenom redosleduSELECT * FROM StudentORDER BY Ime; Predavanja

  14. Prost upit nad jednom tabelom Student SELECT Upit za prikaz samo jedne kolone iz tabele i bez eliminacije duplikata SELECT FakultetFROM Student; Predavanja

  15. Prost upit nad jednom tabelom Student SELECT Upit za prikaz samo jedne kolone iz tabele i sa eliminacijom duplikata :SELECT DISTINCT FakultetFROM Student; Predavanja

  16. Prost upit nad jednom tabelom Student SELECT Upit za prikaz samo jedne kolone iz tabele i sa eliminacijom duplikata , a u željenom redosledu:SELECT DISTINCT FakultetFROM StudentORDER BY Fakultet ; Predavanja

  17. Prost upit nad jednom tabelom Student SELECT Upit za prikaz više kolona sa zadavanjem uslova:SELECT BrInd, Ime, PrezimeFROM StudentWHERE Fakultet=‘FIM’; Predavanja

  18. Prost upit nad jednom tabelom Student SELECT Upit za prikaz dve kolone sa zadavanjem uslova, a u željenom redosledu:SELECT BrInd, Ime, PrezimeFROM StudentWHERE Fakultet=‘FIM’ ORDER BY Ime; Predavanja

  19. Prost upit nad jednom tabelomsa izvedenim rezultatom Student SELECT 6 Upit za prikaz ukupnog broja studenata (odgovara broju redova u tabeli Student)SELECT COUNT(*)FROM Student ; Predavanja

  20. Prost upit nad jednom tabelomsa izvedenim rezultatom Student SELECT 3 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 ; Predavanja

  21. Prost upit nad jednom tabelomsa izvedenim rezultatom Student SELECT 1 Upit za prikaz broja studenata koji su upisali FTHMSELECT COUNT(*)FROM Student WHERE Fakultet=‘FTHM’; Predavanja

  22. Prost upit nad jednom tabelomsa izvedenim rezultatom Racun SELECT 1800+300+250+1100 .... Upit za prikaz sume cena svih proizvoda:SELECT SUM(Cena)FROM Racun; Predavanja

  23. Prost upit nad jednom tabelomsa izvedenim rezultatom Racun SELECT 1800 250 Upit za prikaz minimalnei maksimalnecene iz računa:SELECT MIN(Cena), MAX(Cena)FROM Racun; Predavanja

  24. Prost upit nad jednom tabelomsa izvedenim rezultatom Racun SELECT 2500 1250 • Upit za prikaz sume i proseka cena za proizvod P1:SELECT SUM(Cena), AVG(Cena)FROM RacunWHERE NazivP= ‘P1’; • Primedba: rezultat AVG funkcije preuzima tip podataka od argumenta (tip kolone) 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 zaposlenihFROM radnik GROUP BY brod$, posao HAVING count(*)>1;

  27. Upiti nad više tabela • 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 {<|<=|=|<>|>=|>} Izraz2ispituje da li su vrednosti navedenih izraza u zadatom odnosu Predavanja

  30. Klauzule WHERE i HAVING Izraz [NOT] BETWEEN Izraz1 AND Izraz2ispituje da li je (ili nije) vrednost izraza u zadatim granicama. Kolona IS [NOT] NULLispituje 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 KnjigaWHERE SifN IN (‘RBP0’,’RK00’); Upit koji daje šifre naslova za sve knjige osim za one sa šiframa ‘001’,‘002’,‘003’SELECT DISTINCT SifN FROM KnjigaWHERE 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 Predavanja 35 • 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

  36. INSERT Predavanja 36 • 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

  37. UPDATE Predavanja 37 • 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 ImeTabeleSETatribut1=vrednost1, atribut2=vrednost2, WHERElista uslova;

  38. DELETE Predavanja 38 • 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

More Related