SQL Structured Query Language Strukturirani upitni jezik ta

  • Slides: 75
Download presentation
SQL Structured Query Language Strukturirani upitni jezik

SQL Structured Query Language Strukturirani upitni jezik

Šta je SQL? SQL je standardizovan programski jezik namenjen za upravljanje podacima u relacionim

Šta je SQL? SQL je standardizovan programski jezik namenjen za upravljanje podacima u relacionim bazama podataka. SQL je standardizovan od strane ANSI (American National Standards Institute).

SQL 1970. Donald Čemberlen Rejmond Bojs (Donald Chamberline) (Reymond Boyce) IBM SEQUEL- Structured English

SQL 1970. Donald Čemberlen Rejmond Bojs (Donald Chamberline) (Reymond Boyce) IBM SEQUEL- Structured English Query Language

SQL implementacije Neke implementacije SQL-a razvijene su za upotrebu na PC-ju i jednostavne su

SQL implementacije Neke implementacije SQL-a razvijene su za upotrebu na PC-ju i jednostavne su za upotrebu, druge su prilagođene za rad sa veoma velikim bazama podataka.

OSNOVNE KARAKTERISTIKE SQL-a 1. ) jednostavnost 2. ) uniformnost 3. ) neproceduralnost

OSNOVNE KARAKTERISTIKE SQL-a 1. ) jednostavnost 2. ) uniformnost 3. ) neproceduralnost

Osnovne karakteristike SQL-a Jednostavnost se odnosi na to da se relacije kreiraju jednom naredbom

Osnovne karakteristike SQL-a Jednostavnost se odnosi na to da se relacije kreiraju jednom naredbom i odmah su dostupne za korišćenje. Uniformnost - svi podaci i rezultati operacija se prikazuju u vidu tabela. Neproceduralnost - korisnik određuje koje podatke treba uneti, prikazati ili ukloniti, a ne kako da se izvede operacija nad podacima.

SQL standardi v Iako je SQL standardizovan od strane ANSI (American National Standards Institute),

SQL standardi v Iako je SQL standardizovan od strane ANSI (American National Standards Institute), postoji mnogo različitih verzija SQL jezika. v Da bi bila u skladu sa ANSI standardom, svaka verzija mora na sličan način da podržava barem glavne naredbe (kao što su SELECT, UPDATE, DELETE, INSERT, WHERE).

OPŠTA SINTAKSNA PRAVILA Sintaksa SQL-a je prilično fleksibilna, mada postoje pravila kojih se treba

OPŠTA SINTAKSNA PRAVILA Sintaksa SQL-a je prilično fleksibilna, mada postoje pravila kojih se treba pridržavati, kao i u svakom drugom programskom jeziku: Ø komande se mogu pisati i velikim i malim slovima Ø logički se komponente odvajaju zarezom Øbitno je kakvim slovima su zapisani podaci koji su u bazi podataka Øunosi se tačka-zarez na kraju iskaza (ovaj znak govori SQL programu da je upit završen)

Upiti Ø Upiti mogu da izvršavaju različite funkcije u bazi podataka. ØNjihova najčešća funkcija

Upiti Ø Upiti mogu da izvršavaju različite funkcije u bazi podataka. ØNjihova najčešća funkcija jeste da preuzimaju određene podatke iz tabela.

SQL naredbe v Većina akcija nad bazom podataka izvode se pomoću SQL naredbe.

SQL naredbe v Većina akcija nad bazom podataka izvode se pomoću SQL naredbe.

SELECT naredba v Najčešće se koristi naredba SELECT. v Naredba SELECT koristi se da

SELECT naredba v Najčešće se koristi naredba SELECT. v Naredba SELECT koristi se da se odaberu podaci iz baze podataka (iz jedne ili više tabela). Rezultat se smešta u rezultujuću tabelu.

SELECT naredba SELECT ukazuje na spisak kolona koje treba da se prikažu, a FROM

SELECT naredba SELECT ukazuje na spisak kolona koje treba da se prikažu, a FROM određuje tabelu iz koje treba uzeti kolone. Ako želite da izaberete sva polja koja su dostupna u tabeli, koristite sledec u sintaksu:

SELECT naredba SELECT kolone FROM tabele [JOIN spajanja] [WHERE uslov_za_pretraživanje] [GROUP BY kolone_za_grupisanje] [HAVING

SELECT naredba SELECT kolone FROM tabele [JOIN spajanja] [WHERE uslov_za_pretraživanje] [GROUP BY kolone_za_grupisanje] [HAVING uslov_za_pretraživanje] [ORDER BY kolone_za_sortiranje]

KLAUZULE (sastavni deo upita)

KLAUZULE (sastavni deo upita)

SQL naredbe http: //www. w 3 schools. com/sql_syntax. asp Na primer, sledeća SQL naredba

SQL naredbe http: //www. w 3 schools. com/sql_syntax. asp Na primer, sledeća SQL naredba će izdvojiti sve zapise iz tabele “Customers": Upit U 1 SELECT * FROM Customers;

SELECT naredba Upit U 2 Napraviti upit koji će prikazati kolone Customer. Name i

SELECT naredba Upit U 2 Napraviti upit koji će prikazati kolone Customer. Name i City iz tabele Customers. SELECT Customer. Name, City FROM Customers;

SELECT DISTINCT naredba Naredba za eliminisanje duplikata, ukoliko želimo da prikažemo različite vrednosti iz

SELECT DISTINCT naredba Naredba za eliminisanje duplikata, ukoliko želimo da prikažemo različite vrednosti iz kolone.

SELECT DISTINCT naredba Upit U 3 Napraviti upit koji će prikazati samo različite vrednosti

SELECT DISTINCT naredba Upit U 3 Napraviti upit koji će prikazati samo različite vrednosti kolone Country iz tabele Customers. SELECT DISTINCT Country FROM Customers;

WHERE klauzula Ukoliko je potrebno pronaći određeni objekat ili grupu objekata u bazi podataka,

WHERE klauzula Ukoliko je potrebno pronaći određeni objekat ili grupu objekata u bazi podataka, potreban je jedan ili više uslova. Uslovi se navode u WHERE klauzuli.

WHERE klauzula Upit U 4 Napraviti upit koji će prikazati sve redove iz tabele

WHERE klauzula Upit U 4 Napraviti upit koji će prikazati sve redove iz tabele Customers koji zadovoljavaju uslov Country= 'Mexico'; SELECT * FROM Customers WHERE Country='Mexico';

OPERATORI Operatori su elementi koji se koriste za izražavanje uslova pod kojima se pretražuju

OPERATORI Operatori su elementi koji se koriste za izražavanje uslova pod kojima se pretražuju podaci. Operatori se dele po sledećim grupama: ü aritmetički üoperatori poređenja ülogički

ARITMETIČKI OPERATORI Aritmetički operatori su: Ø operator sabiranja (+) Ø operator oduzimanja (-) Ø

ARITMETIČKI OPERATORI Aritmetički operatori su: Ø operator sabiranja (+) Ø operator oduzimanja (-) Ø operator deljenja (/) Ø operator množenja (*)

ARITMETIČKI OPERATORI Operator sabiranja Iskazom: SELECT kolona 1, kolona 1+0. 15 FROM tabela; dobija

ARITMETIČKI OPERATORI Operator sabiranja Iskazom: SELECT kolona 1, kolona 1+0. 15 FROM tabela; dobija se prikaz kolona 1 i kolona 1 uvećan za 0. 15.

ARITMETIČKI OPERATORI Operator sabiranja Upit O 1 Napraviti upit koji će u prvoj kolini

ARITMETIČKI OPERATORI Operator sabiranja Upit O 1 Napraviti upit koji će u prvoj kolini prikazati kolonu Price iz tabele Products, a u drugoj koloni vrednosti kolone Price uvećane za 0. 15. SELECT Price, Price + 0. 15 FROM Products;

ARITMETIČKI OPERATORI Operator oduzimanja Iskazom: SELECT kolona 1, kolona 2, kolona 1 - kolona

ARITMETIČKI OPERATORI Operator oduzimanja Iskazom: SELECT kolona 1, kolona 2, kolona 1 - kolona 2 FROM tabela; dobija se prikaz kolona 1, kolona 2, kao i kolone koja računa njihovu razliku.

ARITMETIČKI OPERATORI Operator oduzimanja Upit O 2 Napraviti upit koji će u prvoj kolini

ARITMETIČKI OPERATORI Operator oduzimanja Upit O 2 Napraviti upit koji će u prvoj kolini prikazati kolonu Price iz tabele Products, a u drugoj koloni vrednosti kolone Price umanjene za 0. 15. SELECT Price, Price - 0. 15 FROM Products;

ARITMETIČKI OPERATORI Operator deljenja Iskazom: SELECT kolona 1, kolona 1 / 2 FROM tabela;

ARITMETIČKI OPERATORI Operator deljenja Iskazom: SELECT kolona 1, kolona 1 / 2 FROM tabela; dobija se prikaz kolone kolona 1, kao i kolone koja računa vrednosti iz kolone kolona 1 podeljene sa 2.

ARITMETIČKI OPERATORI Operator deljenja Upit O 3 Napraviti upit koji će u prvoj kolini

ARITMETIČKI OPERATORI Operator deljenja Upit O 3 Napraviti upit koji će u prvoj kolini prikazati kolonu Price iz tabele Products, a u drugoj koloni vrednosti kolone Price podeljene sa 2. SELECT Price, Price / 2 FROM Products;

ARITMETIČKI OPERATORI Operator množenja Iskazom: SELECT kolona 1], kolona 1 * 0. 9 FROM

ARITMETIČKI OPERATORI Operator množenja Iskazom: SELECT kolona 1], kolona 1 * 0. 9 FROM [naziv tabele]; dobija se prikaz kolone kolona 1 , kao i kolone koja računa vrednosti iz kolone kolona 1] pomnožene sa 0. 9.

ARITMETIČKI OPERATORI Operator množenja Upit O 4 Napraviti upit koji će u prvoj kolini

ARITMETIČKI OPERATORI Operator množenja Upit O 4 Napraviti upit koji će u prvoj kolini prikazati kolonu Price iz tabele Products, a u drugoj koloni vrednosti kolone Price pomnožene sa 1. 15. SELECT Price, Price * 1. 15 FROM Products;

OPERATORI POREĐENJA OPERATOR OPIS = JEDNAKO <> NIJE JEDNAKO > VEĆE < MANJE >=

OPERATORI POREĐENJA OPERATOR OPIS = JEDNAKO <> NIJE JEDNAKO > VEĆE < MANJE >= VEĆE ILI JEDNAKO <= MANJE ILI JEDNAKO

OPERATORI POREĐENJA Operator = Upit P 1: Napraviti upit koji će iz tabele Products

OPERATORI POREĐENJA Operator = Upit P 1: Napraviti upit koji će iz tabele Products prikazati sve proizvode čija cena iznosi 18. SELECT * FROM Products Where Price = 18;

LOGIČKI OPERATORI Logički operatori odvajaju dva ili više uslova u WHERE klauzuli SQL iskaza.

LOGIČKI OPERATORI Logički operatori odvajaju dva ili više uslova u WHERE klauzuli SQL iskaza.

Operator LIKE koristi se za pretragu kolone po određenom uzorku. % - džoker znak

Operator LIKE koristi se za pretragu kolone po određenom uzorku. % - džoker znak (zamenjuje nijedan, jedan ili više znakova). U MS Access-u to je *. _ - džoker znak (zamenjuje jedan znak). U MS Access -u to je ? .

Operator LIKE

Operator LIKE

Operator LIKE Upit U 5 Napraviti upit koji će prikazati sve redove iz tabele

Operator LIKE Upit U 5 Napraviti upit koji će prikazati sve redove iz tabele Customers koji zadovoljavaju uslov da naziv grada (kolona City) počinje slovom s. SELECT * FROM Customers WHERE City LIKE 's%';

Operator LIKE Upit U 6 Napraviti upit koji će prikazati sve redove iz tabele

Operator LIKE Upit U 6 Napraviti upit koji će prikazati sve redove iz tabele Customers koji zadovoljavaju uslov da naziv grada (kolona City) završava slovom s. SELECT * FROM Customers WHERE City LIKE '%s';

Operator LIKE Upit U 7 Napraviti upit koji će prikazati sve redove iz tabele

Operator LIKE Upit U 7 Napraviti upit koji će prikazati sve redove iz tabele Customers koji zadovoljavaju uslov da naziv grada (kolona City) sadrži slovo s. SELECT * FROM Customers WHERE Country LIKE '%land%';

Operator IN omoguc ava da navođenje više vrednosti u WHERE klauzuli. Operator IN omogućava

Operator IN omoguc ava da navođenje više vrednosti u WHERE klauzuli. Operator IN omogućava skrac eno zapisivanje više OR uslova.

Operator IN

Operator IN

Operator IN Upit U 8 Napraviti upit koji će prikazati sve redove iz tabele

Operator IN Upit U 8 Napraviti upit koji će prikazati sve redove iz tabele Customers koji u koloni City imaju sadržaj: Paris ili London. SELECT * FROM Customers WHERE City IN ('Paris', 'London');

Operator BETWEEN bira vrednosti unutar datog opsega. Vrednosti mogu biti brojevi, tekst ili datumi.

Operator BETWEEN bira vrednosti unutar datog opsega. Vrednosti mogu biti brojevi, tekst ili datumi. Operator BETWEEN se različito ponaša u različitim bazama podataka.

Operator BETWEEN Upit U 9 Napraviti upit koji će prikazati sve redove iz tabele

Operator BETWEEN Upit U 9 Napraviti upit koji će prikazati sve redove iz tabele Products koji u koloni Price imaju vrednost između 10 i 20. SELECT * FROM Products WHERE Price BETWEEN 10 AND 20;

Operator AND zahteva da izrazi sa obe strane operatora moraju biti tačni. Ukoliko je

Operator AND zahteva da izrazi sa obe strane operatora moraju biti tačni. Ukoliko je neki od izraza netačan, rezultat je takođe netačan.

Operator AND Upit U 10 Napraviti upit koji će prikazati sve redove iz tabele

Operator AND Upit U 10 Napraviti upit koji će prikazati sve redove iz tabele Customers koji u koloni Country imaju vrednost Germany i u koloni City vrednost Berlin. SELECT * FROM Customers WHERE Country='Germany’ AND City='Berlin';

Operator OR Kod ovog operatora, ukoliko bilo koji od uslova poređenja vraća kao rezultat

Operator OR Kod ovog operatora, ukoliko bilo koji od uslova poređenja vraća kao rezultat vrednost tačno (TRUE), rezultat operatora OR je tačan (TRUE).

Operator OR Upit U 11 Napraviti upit koji će prikazati sve redove iz tabele

Operator OR Upit U 11 Napraviti upit koji će prikazati sve redove iz tabele Customers koji u koloni City imaju vrednost Berlin ili München. SELECT * FROM Customers WHERE City='Berlin' OR City='München';

ORDER BY ključna reč Koristi se za sortiranje rezultujuće tabele u rastućem (ASC -

ORDER BY ključna reč Koristi se za sortiranje rezultujuće tabele u rastućem (ASC - ascending) ili opadjućem redosledu (DESC descending). Ako se ne navede parametar načina sortiranja (ASC ili DESC) podrazumeva se rastući redosled.

ORDER BY ključna reč Koristi se za sortiranje rezultujuće tabele. Sintaksa: SELECT naziv_kolone (ili

ORDER BY ključna reč Koristi se za sortiranje rezultujuće tabele. Sintaksa: SELECT naziv_kolone (ili kolona) FROM naziv_tabele ORDER BY naziv kolone (ili kolona) ASC|DESC Upit U 12 Napraviti upit koji će prikazati podatke iz tabele Customers sortirane po vrednostima iz kolone Country u rastućem redosledu. SELECT * FROM Customers ORDER BY Country;

ORDER BY ključna reč Upit U 13 Napraviti upit koji će prikazati podatke iz

ORDER BY ključna reč Upit U 13 Napraviti upit koji će prikazati podatke iz tabele Customers sortirane po vrednostima iz kolone Country u opadajućem redosledu. SELECT * FROM Customers ORDER BY Country DESC;

ORDER BY ključna reč Upit U 13 A Napraviti upit koji će prikazati podatke

ORDER BY ključna reč Upit U 13 A Napraviti upit koji će prikazati podatke iz tabele Customers sortirane po vrednostima iz kolone Country u rastućem redosledu, i po vrednostima iz kolone Customer. Name u opadajućem redosledu. SELECT * FROM Customers ORDER BY Country ASC, Customer. Name DESC;

FUNKCIJE U SQL-u Vrste funkcija: ü agregatne funkcije ü funkcije za datum i vreme

FUNKCIJE U SQL-u Vrste funkcija: ü agregatne funkcije ü funkcije za datum i vreme ü aritmetičke funkcije ü funkcije za rad sa karakterima

AGREGATNE FUNKCIJE Ove funkcije se nazivaju još i funkcijama grupe. Kao rezultat daju vrednost

AGREGATNE FUNKCIJE Ove funkcije se nazivaju još i funkcijama grupe. Kao rezultat daju vrednost baziranu na vrednostima iz kolone. Prvih pet agregatnih funkcija COUNT, SUM, AVG, MAX i MIN definisane su ANSI (American National Standards Institute) standardom.

Funkcije AVG(), COUNT() i SUM() AVG() izračunava srednju vrednost odabrane numeričke kolone. COUNT() vraća

Funkcije AVG(), COUNT() i SUM() AVG() izračunava srednju vrednost odabrane numeričke kolone. COUNT() vraća broj vrednosti (NULL vrednosti neće se računati) navedene kolone. SUM() kao rezultat vraća zbir svih vrednosti iz kolone. Argumenti funkcije Sum mogu biti samo numerički podaci. Ukoliko se pokuša sa podacima koji nisu numerički, dobiće se poruka o grešci.

Funkcija AVG() Upit U 14: Napraviti upit koji će prikazati prosečnu vrednost kolone Price

Funkcija AVG() Upit U 14: Napraviti upit koji će prikazati prosečnu vrednost kolone Price iz tabele Products. SELECT AVG(Price) AS Price. Average FROM Products;

Funkcija AVG() Upit U 15: Napraviti upit koji će prikazati nazive proizvoda (kolona Product.

Funkcija AVG() Upit U 15: Napraviti upit koji će prikazati nazive proizvoda (kolona Product. Name) i njihove cene (kolona Price), pod uslovom da je cena tog proizvoda veća od prosečne cene svih proizvoda. SELECT Product. Name, Price FROM Products WHERE Price>(SELECT AVG(Price) FROM Products);

Funkcija COUNT Upit U 16: Napraviti upit koji će izračunati ukupan broj porudžbina kupca

Funkcija COUNT Upit U 16: Napraviti upit koji će izračunati ukupan broj porudžbina kupca sa identifikacionim brojem 7 (Customer. ID=7). SELECT COUNT(Customer. ID) FROM Orders WHERE Customer. ID=7;

Funkcija COUNT (*) funkcija vraća broj slogova u tabeli. Sintaksa: SELECT COUNT(*) FROM ime_tabele

Funkcija COUNT (*) funkcija vraća broj slogova u tabeli. Sintaksa: SELECT COUNT(*) FROM ime_tabele Upit U 17: Napraviti upit koji će izračunati ukupan broj porudžbina iz tabele Orders. SELECT COUNT(*) FROM Orders;

Funkcija SUM Argumenti funkcije Sum mogu biti samo numerički podaci. Ukoliko se pokuša sa

Funkcija SUM Argumenti funkcije Sum mogu biti samo numerički podaci. Ukoliko se pokuša sa podacima koji nisu numerički, dobiće se poruka o grešci.

Funkcija SUM Upit U 18: Napraviti upit koji će izračunati ukupnu naručenu količinu (kolona

Funkcija SUM Upit U 18: Napraviti upit koji će izračunati ukupnu naručenu količinu (kolona Quantity) iz iz tabele Order. Details. SELECT SUM(Quantity) FROM Order. Details;

Funkcije MAX i MIN • MAX() vraća najveću vrednost u okviru odabrane kolone. •

Funkcije MAX i MIN • MAX() vraća najveću vrednost u okviru odabrane kolone. • MIN() vraća najmanju vrednost u okviru odabrane kolone.

Funkcija MAX Upit U 19: Napraviti upit koji će prikazati maksimalnu vrednost kolone Price

Funkcija MAX Upit U 19: Napraviti upit koji će prikazati maksimalnu vrednost kolone Price iz tabele Products. SELECT MAX(Price) FROM Products;

Funkcija MIN Upit U 20: Napraviti upit koji će prikazati minimalnu vrednost kolone Price

Funkcija MIN Upit U 20: Napraviti upit koji će prikazati minimalnu vrednost kolone Price iz tabele Products. SELECT MIN(Price) FROM Products;

GROUP BY naredba Naredba GROUP BY se koristi u sprezi s agregatnim funkcijama za

GROUP BY naredba Naredba GROUP BY se koristi u sprezi s agregatnim funkcijama za grupisanje u okviru jedne ili više kolona u rezultujućoj tabeli.

GROUP BY naredba Upit U 21: Napraviti upit koji će prikazati ukupnu naručenu količinu

GROUP BY naredba Upit U 21: Napraviti upit koji će prikazati ukupnu naručenu količinu po proizvodima iz tabele Order. Details. SELECT Product. ID, SUM(Quantity) FROM Order. Details Group By Product. ID;

GROUP BY naredba Upit U 22: Napraviti upit koji će prikazati ukupnu naručenu količinu

GROUP BY naredba Upit U 22: Napraviti upit koji će prikazati ukupnu naručenu količinu po proizvodima, pod uslovom da u zbir ulaze samo naručene količine veće od 70. SELECT Product. ID, SUM(Quantity) FROM Order. Details WHERE Quantity > 70 Group By Product. ID;

HAVING klauzula je ugrađena u SQL jer ključna reč WHERE ne možе da sе

HAVING klauzula je ugrađena u SQL jer ključna reč WHERE ne možе da sе koristi сa agregаtnim funkcijama.

HAVING klauzula Upit U 23: Napraviti upit koji će prikazati ukupnu naručenu količinu po

HAVING klauzula Upit U 23: Napraviti upit koji će prikazati ukupnu naručenu količinu po proizvodima, pod uslovom da je ukupna naručena količina veća od 100. SELECT Product. ID, SUM(Quantity) FROM Order. Details Group By Product. ID Having SUM(Quantity)>100;

UNION operator n UNION operator se koristi za formiranje rezultujuće tabele kombinovanjem dva ili

UNION operator n UNION operator se koristi za formiranje rezultujuće tabele kombinovanjem dva ili više SELECT iskaza. n Svaki SELECT iskaz unutar UNION-a: - mora imati isti broj kolona; - kolone moraju imati isti tip podataka; - kolone u svakom SELECT iskazu moraju biti u istom redosledu.

UNION operator

UNION operator

UNION operator Upit U 24: Napraviti upit koji će izlistati sva različita imena gradova

UNION operator Upit U 24: Napraviti upit koji će izlistati sva različita imena gradova koja se nalaze u tabelama Customers i Suppliers. Imena gradova sortirati u rastućem redosledu. SELECT City FROM Customers UNION SELECT City FROM Suppliers ORDER BY City;

UNION ALL operator UNION operator odabira samo različite vrednosti. Ako je potrebno omogućiti dvostruke

UNION ALL operator UNION operator odabira samo različite vrednosti. Ako je potrebno omogućiti dvostruke vrednosti, koristiti se UNION ALL

UNION ALL Operator Upit U 25: Napraviti upit koji će izlistati sva imena gradova

UNION ALL Operator Upit U 25: Napraviti upit koji će izlistati sva imena gradova (sa ponavljanjem) koja se nalaze u tabelama Customers i Suppliers. Imena gradova sortirati u rastućem redosledu. SELECT City FROM Customers UNION ALL SELECT City FROM Suppliers ORDER BY City;

INNER JOIN ključna reč Formira tabelu koja se sastoji od kolona iz dve tabele,

INNER JOIN ključna reč Formira tabelu koja se sastoji od kolona iz dve tabele, na osnovu odnosa između pojedinih kolona u ovim tabelama.

INNER JOIN ključna reč Upit U 26: Napraviti upit koji će prikazati sve kupce

INNER JOIN ključna reč Upit U 26: Napraviti upit koji će prikazati sve kupce (kolona Customer. Name iz tabele Customers) koji imaju porudžbine (prikazati njihove šifre – kolona Order. ID iz tabele Orders). Sortirati po nazivu kupca (kolona Customer. Name). SELECT Customers. Customer. Name, Orders. Order. ID FROM Customers INNER JOIN Orders ON Customers. Customer. ID=Orders. Customer. ID ORDER BY Customers. Customer. Name;