Baze podataka Uvod u SQL Jezik relacione BP Predavanja.

Slides:



Advertisements
Similar presentations
Isti upit iskazan na različite načine 2 - Zamena NOT IN (SELECT...) izraza
Advertisements

Programiranje kroz aplikacije
Isti upit iskazan na različite načine
Baze podataka Osnovni pojmovi Osnovni pojmovi.
Kreiranje upita This template can be used as a starter file for presenting training materials in a group setting. Sections Right-click on a slide to add.
Pretraživanje interneta
dr Aleksandra Kostić-Milanović mr Vule Aleksić
Uvod u programiranje - matematika – VI predavanje
Računarstvo i informatika
Petlje WHILE – WEND.
Structured Query Language
Algoritamske/programske strukture
dr Svetlana Cvetanović
Pristup podacima Uvod Nikola Vlahović.
Programiranje - Blokovi naredbi i logički tipovi –
Pojam DBMS. Relacione baze podataka
Structured Query Language
CheckBox RadioButton RadioGroup
Naredbe ciklusa.
Klauzule GROUP BY i HAVING
BAZA PODATAKA (Database) je skup međusobno povezanih podataka koji se čuvaju zajedno, tokom dužeg vremenskog perioda, i među kojima ima samo onoliko ponavljanja.
IF NAREDBA – naredba grananja
Upitni jezik SQL.
Quick Basic.
Petlje FOR - NEXT.
REPEAT…UNTIL Naredbe ciklusa.
RELACIONE BAZE PODATAKA
PROGRAMSKE PETLJE Milenković Gabrijela.
Konveksni omotač (red O(n log (n)))
Uvod u HTML Zoltan Geller 2017
Klauzule GROUP BY i HAVING
KREIRANJE OBJEKATA.
Video zapis.
Europski dan programiranja
Uvod u programiranje - matematika – X predavanje
RAZGRANATA STRUKTURA Zadaci i rešenja
RAZGRANATA STRUKTURA Zadaci i rešenja
Reference ćelije i opsega
Elektrotehnički fakultet – Podgorica Operativni sistemi
14 UNUTRAŠNJE I ANONIMNE KLASE
Elementi programskog jezika PASCAL
Podešavanje osobina stranica
Hyper Text Markup Language
Arrays and strings -1 (nizovi i znakovni nizovi)
SQL. SQL SQL Structured Query Language (SQL) predstavlja programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u sistemima.
SQL: naredba SELECT (nad jednom tabelom)
Vežba 1. Formatiranje teksta korišćenjem stilskih šablona
Kartica Insert.
Besplatni softverski alati
Naredba Case Višestruko grananje.
M-datoteke.
InputBox i naredba IF.
MessageBox.
OSNOVNO O BAZAMA PODATAKA
Pojmovi digitalnog zapisa
Ključne reči,identifikatori, konstante i promenljive
PROGRAMSKI JEZIK PASCAL
Osnovni simboli jezika Pascal
Do While ... Loop struktura
Home - Bullets & Numbering -
Programiranje – Small Basic
Naredbe u php-u.
Programski jezik Python
Programiranje - Naredbe za kontrolu toka programa – 1. dio
Programiranje - Naredbe za kontrolu toka programa – 3. dio
predavanja v.as.mr. Samir Lemeš
Ponavljanje Pisana provjera
Programiranje - Naredbe za kontrolu toka programa – 1. dio
Presentation transcript:

Baze podataka Uvod u SQL Jezik relacione BP Predavanja

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 28.11.2006. Predavanja

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 28.11.2006. Predavanja

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

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

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

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 1800+300+250+1100 .... Predavanja

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 1800 250 Predavanja

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 2500 1250 Predavanja

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$;

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;

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

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

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

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

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

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

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

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

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

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

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

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