SQL - PowerPoint PPT Presentation

About This Presentation
Title:

SQL

Description:

SQL Structured Query Language Strukturirani upitni jezik – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 63
Provided by: EF57
Category:
Tags: sql | spisak | studenata

less

Transcript and Presenter's Notes

Title: SQL


1
SQL Structured Query Language
Strukturirani upitni jezik
2
Šta je SQL?
SQL je standardni jezik za pristup i dobijanje
podataka iz relacionih baza podataka. SQL je
standardizovan od strane ANSI (American National
Standards Institute).
3
SQL
1970.godina
Donald Cemberlen
Rejmond Bojs
IBM
SEQUEL- Structured English Query Language
4
SQL
Neke implementacije SQL-a razvijene su za
upotrebu na PC-ju i jednostavne su za upotrebu,
druge su prilagodene za rad sa veoma velikim
bazama podataka.
5
Osnovne karakteristike SQL-a
1.) jednostavnost 2.) uniformnost 3.)
neproceduralnost
Jednostavnost se odnosi na to da se relacije
kreiraju jednom naredbom i odmah su dostupne za
korišcenje.
Uniformnost - svi podaci i rezultati operacija se
prikazuju u vidu tabela.
Neproceduralnost - korisnik odreduje koje podatke
treba uneti, prikazati ili ukloniti, a ne kako da
se izvede operacija nad podacima.
6
? SQL (Structured Query Language) je programski
jezik namenjen za upravljanje podacima u
relacionim sistemima za upravljanje bazama
podataka.
SQL obuhvata
unos podataka
ažuriranje i brisanje podataka
šeme kreiranja i menjanja
kontrolu pristupa
7
Šta može SQL da uradi?
  • Da izvrš?v? upit? n?d b?zom p?dat?k?.
  • Da pr?uzm? p?d?tk? iz b?z? p?d?t?k?.
  • Da umetne zapise u bazu podataka.
  • Da ažurira zapise u bazi podataka.
  • Da izbriše zapise iz baze podataka.
  • Da kreira novu bazu podataka.
  • Da kreira novu tabelu u bazi podataka.
  • Da kreira prikaze u bazi podataka.
  • ...

8
SQL je standard ali ....
Iako je SQL standardizovan od strane ANSI
(American National Standards Institute), postoji
mnogo razlicitih verzija SQL jezika. Medutim,
da bi bila u skladu sa ANSI standardom, svaka
verzija mora na slican nacin da podržava barem
glavne naredbe (kao što su SELECT, UPDATE,
DELETE, INSERT, WHERE).
9
RDBMS (Relational Database Management
System) SISTEM ZA UPR?VLJANJE R?LACIONIM BAZ?M?
PODAT?K?
Podaci u RDBMS-u se cuv?ju u ?b??ktima baze
podataka koji se n?zivaju tabele. Tabel?
predstavlja kolekciju sr?dnih podataka i sastoji
se od kolona i redova.
10
Tabele
Baza podataka sadrži jednu ili više tabela.
Svaka tabela se identifikuje po imenu (npr.
"Kupci" ili "Prodavci"). Tabele sadrže zapise
(redove) sa podacima.
11
RDBMS (Relational Database Management
System) SISTEM ZA UPR?VLJANJE R?LACIONIM BAZ?M?
PODAT?K?
RDBMS je osnova za SQL i za sve moderne baze
podataka kao što su MS SQL Server, IBM DB2,
Oracle, MySQL, Sybase i Microsoft Access.
12
RDBMS (Relational Database Management
System) SISTEM ZA UPR?VLJANJE R?LACIONIM BAZ?M?
PODAT?K? TOP 5
1. Oracle 2. SQL
Server 3. DB2
4. Sybase
5. MySQL
13
RDBMS TOP 5
  • Oracle Database - poslednja dostupna varijanta
    11g Release 2.
  • 2. MS SQL Server - clan Microsoftove porodice,
    inicijalno razvijen kao konkurencija Oracle-u i
    IBM-u.
  • Poslednja verzija SQL Server 2012.
  • 3. IBM DB2 - Poslednja verzija 10.
  • 4. Sybase - Poslednja verzija 15.7. Od maja 2010.
    deo kompanije SAP (za 5,8 milijardi dolara).
  • 5. MySql - Deo Oracle porodice od Januara 2010.
    Do nedavno besplatan. Sadašnja cena je od 2.000
    do 30.000. Postoje neke besplatne varijante i
    sada.
  • Verzija 5.6.

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

15
SQL naredbe Da li zarez iza naredbe?
Neki upravljacki sistemi za upravljanje bazom
podataka zahtevaju zarez na kraju svake SQL
naredbe. Zarez je standardni nacin za odvajanje
SQL naredbi u sistemima za upravljanje bazama
podataka koji dopuštaju izvršavanje više od
jednog SQL iskaza u istom pozivu servera. Kada
koristimo MS Access ili SQL Server 2012 ne moramo
da stavimo zarez iza svake SQL naredbe.
16
SQL DML i DDL
SQL se može podeliti u dva dela - Jezik za
manipulaciju podacima (DML - The Data
Manipulation Language) i - Jezik za definisanje
podataka (DDL - The Data Definition Language
(DDL). Najvažnije DML komande SELECT za
odabir podataka iz baze podataka UPDATE za
ažuriranje podataka u bazi podataka DELETE za
brisanje podataka iz baze podataka INSERT INTO
za umetanje novih podataka u bazu podataka
17
SQL DML i DDL
Najvažnije DDL naredbe CREATE DATABASE za
kreiranje nove baze podataka ALTER DATABASE za
modifikovanje baze podataka CREATE TABLE za
kreiranje nove tabele ALTER TABLE za
modifikovanje tabele DROP TABLE za brisanje
tabele CREATE INDEX za kreiranje indeksa DROP
INDEX za brisanje indeksa
18
Upiti
  • Najvažnije element SQL-a.
  • Vracaju podatke na osnovu odredenih kriterijuma

19
Sastavni deo UPITA su KLAUZULE
Klauzule
WHERE
FROM
HAVING
ORDER BY
GROUP BY
20
SQL naredbe
  • Vecina akcija nad bazom podataka izvode se
    pomocu SQL naredbe.
  • Najcešce se koristi naredba SELECT.
  • SELECT naredbom nalaže se preuzimanje podatke iz
    jedne ili više tabela.
  • Upit sadrži spisak kolona koje ce biti ukljucene
    u konacni rezultat odmah nakon SELECT.
  • Zvezdica () se takode može koristiti kada upit
    treba da upit vrati sve kolone izvorne tabele.

21
1. Primer SELECT naredbe
1.) Hocemo da iz tabele Studenti dobijemo spisak
svih studenata koji imaju prosecnu ocenu vecu od
8,5 i želimo da budu sortirani po
prezimenu. SELECT FROM Studenti WHERE Prosecna
ocenagt8.5 ORDER BY Studenti.Prezime
Zvezdica ukazuje da ce biti prikazani sve kolone
iz tabele Studenti
22
2. Primer SELECT naredbe
2.) Ako želimo da dodamo novog studenta,
koristimo naredbu INSERT INTO INSERT INTO
Studenti (Ime, Prezime, ProsecnaOcena)
VALUES (Petar', 'Petrovic', 8.85)
23

SQL naredbe Na primer, sledeca SQL naredba ce
izdvojiti sve zapise iz tabele
Persons" SELECT FROM Persons
24
  • Primer. Prikazati sve podatke iz tabele
    Persons.
  • U bazi podataka SQL W3Schools odabrati Queries.
  • Kliknuti na New a zatim na Design View.
  • Odabrati tabelu Persons.
  • Kliknuti na dugme Add, zatim na Close.

25
5. U meniju View odabrati SQL View.
26
6. Upisati iskaz SELECT from Persons 7. U
meniju Query odabrati Run. Pojavice se tražena
tabela.
27
Rezultat ovog iskaza je prikaz svih naziva polja
i podataka unutar tabele Persons. (upit U1)
1
28
SELECT naredba Naredba SELECT koristi se da se
odaberu podaci iz baze podataka. Rezultat se
smešta u rezultujucu tabelu. U najjednostavnijem
obliku, naredba SELECT odabira kolone iz jedne
tabele. Može se uzeti jedna kolona, više kolona
ili sve kolone iz tabele.
29
SELECT naredba Sintaksa SELECT naziv_kolone
(ili kolona) FROM naziv_tabele SELECT FROM
naziv_tabele SELECT ukazuje na spisak kolona
koje treba da se prikažu, a FROM odreduje tabelu
iz koje treba uzeti kolone.
30
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
31
SELECT naredba Zvezdica () u SELECT , govori
bazi podataka da vrati informacije iz svih kolona
tabele koja je navedena u FROM klauzuli. Prethodn
i primer SQL iskaza koristi da bi se izabrale
sve kolone iz tabele, medutim, ukoliko želimo da
prikažemo samo neke kolone, ili promenimo
redosled njihovog prikaza, tada koristimo
iskaz SELECT naziv_kolone (ili kolona) FROM
naziv_tabele
32
SELECT naredba npr. Upit U2 Napraviti upit koji
ce prikazati kolone LastName i FirstName iz
tabele Persons. SELECT LastName, FirstName FROM
Persons
33
SELECT DISTINCT naredba Naredba za eliminisanje
duplikata. Ukoliko želimo da prikažemo razlicite
vrednosti iz kolone. Sintaksa SELECT DISTINCT
naziv_kolone(ili kolona)FROM naziv_tabele npr.
Upit U3 SELECT DISTINCT City FROM Persons
34
WHERE klauzula Ukoliko je potrebno pronaci
odredeni objekat ili grupu objekata u bazi
podataka, potreban je jedan ili više uslova.
Uslovi se navode u WHERE klauzuli. Sintaksa
WHERE klauzule je WHERE ltuslov
pretrazivanjagt SELECT naziv_kolone (ili kolona)
FROM naziv_tabeleWHERE naziv_kolone operator
vrednost Primer uslova Upit U4 SELECT FROM
Persons WHERE City'Sandnes'
35
  • OPERATORI
  • Operatori su elementi koji se koriste za
    izražavanje uslova pod kojima se pretražuju
    podaci. Operatori se dele po sledecim grupama
  • aritmeticki
  • operatori poredenja
  • operatori za znakove (stringove)
  • logicki

36
Aritmeticki operatori
  • Aritmeticki operatori su
  • operator sabiranja (), oduzimanja (-), deljenja
    (/), množenja ()
  • Operator sabiranja
  • iskazom
  • SELECT naziv_kolone, naziv_kolone0.15 FROM
    naziv tabele
  • dobija se prikaz kolone naziv_kolone i kolone
    naziv_kolone uvecan za 0.15.

37
Operator oduzimanja Iskazom SELECT
naziv_kolone1, naziv_kolone2,
(naziv_kolone1-naziv_kolone2)
FROM naziv_tabele dobija se prikaz kolona
naziv_kolone1,naziv_kolone2, kao i kolone
koja racuna njihovu razliku.
38
Operator deljenja Iskazom SELECT
naziv_kolone1, naziv_kolone2,
(naziv_kolone2/2) FROM naziv tabele dobija
se prikaz kolona naziv_kolone1,naziv_kolone2,
kao i kolone koja racuna vrednosti iz
naziv_kolone2 podeljene sa 2.
39
Operator množenja Iskazom SELECT
naziv_kolone1, naziv_kolone2,
(naziv_kolone20.9) FROM naziv tabele dobija
se prikaz kolona naziv_kolone1,naziv_kolone2,
kao i kolone koja racuna vrednosti iz kolone
naziv_kolone2 pomnožene sa 0.9.
40
Operatori poredenja
OPERATOR OPIS
JEDNAKO
ltgt NIJE JEDNAKO
gt VECE
lt MANJE
gt VECE ILI JEDNAKO
lt MANJE ILI JEDNAKO
BETWEEN IZMEÐU GRANICA OPSEGA (UKLJUCUJUCI GRANICE)
LIKE PRETRAGA PO UZORKU
IN DOZVOLJAVA NAVOÐENJE VIŠE VREDNOSTI U KLAUZULI WHERE

41
Operatori za stringove
Operator LIKE koristi se za pretragu kolone po
odredenom uzorku. Sintaksa SELECT
nazov_kolone(ili kolona)FROM naziv_tabeleWHERE
naziv_kolone LIKE uzorak
42
Operator LIKE
npr. Upit U5 SELECT FROM Persons WHERE City
LIKE 's' - džoker znak (zamenjuje nijedan,
jedan ili više znakova) Napomena U MS Access-u
to je npr. Upit U6 SELECT FROM Persons
WHERE City LIKE 's' npr. Upit U7 SELECT
FROM Persons WHERE City LIKE 's'
43
Operator IN
Sintaksa SELECT naziv_kolone(ili kolona)FROM
naziv_tabeleWHERE naziv_kolone IN
(vrednost1,vrednost2,...) npr. Upit U8 SELECT
FROM Persons WHERE LastName IN
('Hansen','Pettersen')
44
Operator BETWEEN
Sintaksa SELECT naziv_kolone (ili kolona) FROM
naziv_tabeleWHERE naziv_kolone BETWEEN vrednost1
AND vrednost2 napomena Operator BETWEEN se
razlicito ponaša u razlicitim bazama podataka.
npr. Upit U9 SELECT FROM Persons WHERE
LastNameBETWEEN 'Hansen' AND 'Pettersen'
45
Logicki operatori
Logicki operatori odvajaju dva ili više uslova u
WHERE klauzuli SQL iskaza.
Operator AND Ovaj operator zahteva da izrazi sa
obe strane operatora moraju biti tacni. Ukoliko
je neki od izraza netacan, rezultat je takode
netacan. npr. Upit U10 SELECT FROM Persons
WHERE FirstName'Tove'AND LastName'Svendson'
46
Logicki operatori
Operator OR Kod ovog operatora, ukoliko bilo koji
od uslova poredenja vraca kao rezultat vrednost
tacno (TRUE), rezultat operatora OR je tacan
(TRUE). npr. Upit U11 SELECT FROM Persons
WHERE FirstName'Tove'OR FirstName'Ola'
47
ORDER BY kljucna rec
Koristi se za sortiranje rezultujuce
tabele. Sintaksa SELECT naziv_kolone (ili
kolona) FROM naziv_tabeleORDER BY naziv kolone
(ili kolona) ASCDESC npr. Upit U12 SELECT
FROM Persons ORDER BY LastName npr. Upit
U13 SELECT FROM Persons ORDER BY LastName DESC
48
FUNKCIJE U SQL-u
  • Vrste funkcija
  • agregatne funkcije
  • funkcije za datum i vreme
  • aritmeticke funkcije
  • funkcije za rad sa karakterima

49
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. Vecina implementacija
(programi u kojima se koristi) SQL-a ima
proširenja ovih agregatnih funkcija.
50
  • Funkcija AVG
  • Izracunava srednju vrednost odabrane numericke
    kolone.
  • Sintaksa
  • SELECT AVG(ime_kolone) FROM ime_tabele
  • Npr. Upit14.
  • SELECT AVG(OrderPrice) AS OrderAverage
    FROM Orders
  • Npr. Upit15.
  • SELECT Customer FROM OrdersWHERE
    OrderPricegt(SELECT AVG(OrderPrice) FROM Orders)

51
Funkcija COUNT Funkcija COUNT vraca broj
vrednosti (NULL vrednosti nece se racunati)
navedene kolone. Sintaksa SELECT
COUNT(ime_kolone) FROM ime_tabele Npr.
Upit16 SELECT COUNT(Customer) AS CustomerNilsen
FROM Orders WHERE Customer'Nilsen'
52
Funkcija COUNT COUNT () funkcija vraca broj
slogova u tabeli. Sintaksa SELECT COUNT() FROM
ime_tabele Npr. Upit17 SELECT COUNT() AS
NumberOfOrders FROM Orders
53
Funkcija SUM Kao rezultat vraca zbir svih
vrednosti iz kolone. Argumenti funkcije Sum mogu
biti samo numericki podaci. Ukoliko se pokuša sa
podacima koji nisu numericki, dobice se poruka o
grešci. Sintaksa SELECT SUM(ime_kolone) FROM
ime_tabele Npr. Upit18 SELECT SUM(OrderPrice) AS
OrderTotal FROM Orders
54
  • Funkcija MAX
  • Vraca najvecu vrednost u okviru odabrane kolone.
  • Sintaksa
  • SELECT MAX(ime_kolone) FROM ime_tabele
  • Npr. Upit19
  • SELECT MAX(OrderPrice) AS LargestOrderPrice FROM
    Orders

55
  • Funkcija MIN
  • Vraca najmanju vrednost u okviru odabrane
    kolone.
  • Sintaksa
  • SELECT MIN(ime_kolone) FROM ime_tabele
  • Npr. Upit20
  • SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM
    Orders

56
GROUP BY naredba Naredba GROUP BY se koristi u
sprezi s agregatnim funkcijama za grupisanje u
okviru jedne ili više kolona u rezultujucoj
tabeli. Sintaksa SELECT naziv_kolone,
agregatna_funkcija(naziv_kolone)FROM
naziv_tabeleWHERE naziv_kolone operator
vrednostGROUP BY naziv_kolone Npr.
Upit21 SELECT Customer, SUM(OrderPrice) FROM
OrdersGROUP BY Customer
57
HAVING klauzula HAVING klauzula je ugradena u
SQL jer kljucna rec WHERE ne mož? da s? koristi
?a agreg?tnim funkcijama. Sintaksa SELECT
naziv_kolone, agregatna_funkcija(naziv_kolone)FRO
M naziv_tabeleWHERE naziv_kolone operator
vrednostGROUP BY naziv_koloneHAVING
agregatna_funkcija(naziv_kolone) operator
vrednost
58
HAVING klauzula Npr. Upit22 SELECT
Customer,SUM(OrderPrice) FROM OrdersGROUP BY
CustomerHAVING SUM(OrderPrice)lt2000 Npr.
Upit23 SELECT Customer,SUM(OrderPrice) FROM
OrdersWHERE Customer'Hansen' OR
Customer'Jensen'GROUP BY CustomerHAVING
SUM(OrderPrice)gt1500
59
INNER JOIN kljucna rec Formira tabelu koja se
sastoji od kolona iz dve tabele, na osnovu odnosa
izmedu pojedinih kolona u ovim tabelama.
Sintaksa SELECT naziv_kolone(ili kolona) FROM
naziv_tabele1INNER JOIN naziv_tabele2 ON
naziv_tabele1.naziv_kolonenaziv_tabele2.naziv_kol
one Npr. Upit24 SELECT Persons.LastName,
Persons.FirstName, Orders1.OrderNo FROM
PersonsINNER JOIN Orders1 ON Persons.P_IdOrders1
.P_IdORDER BY Persons.LastName
60
UNION Operator UNION operator se koristi za
formiranje rezultujuce tabele kombinovanjem dva
ili više SELECT iskaza. Napomenasvaki SELECT
iskaz unutar UNION-a mora imati isti broj kolona.
Kolone moraju moraju imati isti tip podataka.
Takode, kolone u svakom SELECT iskazu moraju biti
u istom redosledu. UNION operator odabira samo
razlicite vrednosti. Ako je potrebno omoguciti
dvostruke vrednosti, koristiti se UNION
ALL Sintaksa SELECT naziv_kolone(a) FROM
naziv_tabele1UNION SELECT ime_kolone(a) FROM
naziv_tabele2
61
UNION Operator Npr. Upit25 SELECT E_Name FROM
Employees_NorwayUNIONSELECT E_Name FROM
Employees_USA
62
UNION ALL Operator Sintaksa SELECT
naziv_kolone(a) FROM naziv_tabele1UNION ALL
SELECT naziv_kolone(a)
FROM naziv_tabele2 Npr. Upit26 SELECT
E_Name FROM Employees_NorwayUNION SELECT E_Name
FROM Employees_USA
Write a Comment
User Comments (0)
About PowerShow.com