Baze podataka
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

Baze podataka PowerPoint PPT Presentation


  • 54 Views
  • Uploaded on
  • Presentation posted in: General

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Baze podataka

Baze podataka

Uvod u SQL

Jezik relacione BP

Predavanja


Upiti queries

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 s tructured q uery l anguage

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


Baze podataka

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


Baze podataka

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

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 komentarkoji se proteže u više redova */

  • Za nazive (imena) se ne smeju koristiti rezervisane reči

Predavanja


Sql sintaksa1

SQL- sintaksa -

  • Separator naredbi:naredba1;naredba2;

  • FORMAT naredbi: Sledeće naredbe su ispravno napisane

    • SELECT *FROM studentWHERE brind≤ 100;

    • SELECT * FROM student WHERE brind≤ 100;

    • SELECT *FROMstudentWHEREBrInd ≤ 100;

Predavanja


Upit select

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


Prost upit nad jednom tabelom

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 tabelom1

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


Prost upit nad jednom tabelom2

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 tabelom3

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 tabelom4

Prost upit nad jednom tabelom

Student

SELECT

Upit za prikaz cele tabele u željenom redosleduSELECT *FROM StudentORDER BY Ime;

Predavanja


Prost upit nad jednom tabelom5

Prost upit nad jednom tabelom

Student

SELECT

Upit za prikaz samo jedne kolone iz tabele i bez eliminacije duplikata SELECT FakultetFROM Student;

Predavanja


Prost upit nad jednom tabelom6

Prost upit nad jednom tabelom

Student

SELECT

Upit za prikaz samo jedne kolone iz tabele i sa eliminacijom duplikata :SELECT DISTINCT FakultetFROM Student;

Predavanja


Prost upit nad jednom tabelom7

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


Prost upit nad jednom tabelom8

Prost upit nad jednom tabelom

Student

SELECT

Upit za prikaz više kolona sa zadavanjem uslova:SELECT BrInd, Ime, PrezimeFROM StudentWHERE Fakultet=‘FIM’;

Predavanja


Prost upit nad jednom tabelom9

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


Prost upit nad jednom tabelom sa izvedenim rezultatom

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


Prost upit nad jednom tabelom sa izvedenim rezultatom1

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


Prost upit nad jednom tabelom sa izvedenim rezultatom2

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


Prost upit nad jednom tabelom sa izvedenim rezultatom3

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


Prost upit nad jednom tabelom sa izvedenim rezultatom4

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


Prost upit nad jednom tabelom sa izvedenim rezultatom5

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


Klauzula group by grupisanje slogova na osnovu nekog kriterijuma

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

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;


Upiti nad vi e tabela

Upiti nad više tabela

  • Za kolone koje se nalaze u više tabele obavezno je navođenje

    • ImeTabele.ImeKolone

Predavanja


Upiti nad vi e tabela1

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.NazivFROM Naslov N, Oblast OWHERE N.SifO=O.SifOORDER BY N.Naziv ;

Predavanja


Klauzule where i having

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


Klauzule where i having1

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


Klauzule where i having2

Klauzule WHERE i HAVING

Upit koji daje nazive svih naslova u kojima se nalazi reč “jezik”SELECT NazivFROM Naslov WHERE Naziv LIKE ‘*jezik*’;

Predavanja


Klauzule where i having3

Klauzule WHERE i HAVING

Upit koji daje šifre knjiga koje odgovaraju naslovima šifara “RBP0” i “RK00”SELECT SifKFROM KnjigaWHERE SifN IN (‘RBP0’,’RK00’);

Upit koji daje šifre naslova za sve knjige osim za one sa šiframa ‘001’,‘002’,‘003’SELECT DISTINCT SifNFROM KnjigaWHERE SifK <> ALL (‘001’,’002’, ‘003’);

Predavanja


Upiti sa podupitima ugnje deni upiti

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 upiti1

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


  • Login