Вы находитесь на странице: 1из 25

Baze podataka i SQL

Relacione baze podataka

Dr Samim Konjicija, dipl. ing. el.

Kiseljak, 11.5.2010.

Sadraj predavanja
Osnovna struktura Operacije nad skupovima Agregirane funkcije Null vrijednost Ugnijeeni upiti Modificiranje baze podataka

ema koja e biti koritena za primjere

Osnovna struktura
SQL se zasniva na operacijama nad skupovima i relacijama, uz dodatne modifikacije i poboljanja Tipini SQL upit ima formu: select A1, A2, ..., An from r1, r2, ..., rm where P Ai predstavljaju atribute ri predstavljaju relacije P je predikat Rezultat izvravanja SQL upita je relacija

select upit
select upit navodi listu atributa ije vrijednosti se ele dobiti u rezultatu izvravanja upita Primjer: select branch-name from loan Napomene: SQL ne dozvoljava znak - u imenima (u primjerima ga koristimo samo radi itljivosti, inae treba koristiti _) SQL ne razlikuje velika i mala slova

select upit
SQL dozvoljava duplikate u relacijama i rezultatima upita Kada je potrebno eliminirati duplikate, koristi se kljuna rije distinct nakon select Primjer:
select distinct branch-name from loan

Kljuna rije all specificira da duplikati ne trebaju biti uklonjeni Primjer:


select all branch-name from loan

select upit
Umjesto navoenja liste svih atributa, moe se koristiti zvjezdica: select * from loan U okviru select upita se mogu nalaziti i aritmetiki izrazi koji sadre operatore +, -, * i /, te konstante i atribute: select loan-number, branch-name, amount 100 from loan Ovakav upit vraa relaciju identinu loan, s razlikom da je atribut amount pomnoen sa 100

select upit
Kljuna rije where specificira uslove koje rezultat mora ispuniti: select loan-number from loan where branch-name = Perryridge and amount > 1200 U okviru uslova se mogu koristiti i logiki uslovi and, or i not Mogu se porediti i rezultati aritmetikih izraza Za specificiranje opsega vrijednosti se koristi kljuna rije between: select loan-number from loan where amount between 90000 and 100000

select upit
U okviru from se navode relacije koje su ukljuene u upit: select from borrower, loan Rezultat izvravanja upita odgovara Kartezijevom produktu rezultata iz pojedinanih relacija Sloeniji primjer: select customer-name, borrower.loan-number, amount from borrower, loan where borrower.loan-number = loan.loan-number and branch-name = Perryridge

select upit
Da bi se izbjeglo navoenje dugih imena, SQL omoguava preimenovanje atributa koritenjem kljune rijei as: staro-ime as novo-ime Primjer: select customer-name, borrower.loan-number as loan-id, amount from borrower, loan where borrower.loan-number = loan.loan-number N-torke se preimenuju koritenjem as u okviru from: select customer-name, T.loan-number, S.amount from borrower as T, loan as S where T.loan-number = S.loan-number select distinct T.branch-name from branch as T, branch as S where T.assets > S.assets and S.branch-city = Brooklyn

Operacije sa stringovima
SQL omoguava poreenje stringova koritenjem kljune rijei like i operatora: % - bilo koji podstring _ - bilo koji karakter

Primjer: select customer-name from customer where customer-street like %Main% Ukoliko se u stringu pojavljuje neki od navedenih znakova, koristi se kljuna rije escape: like Main\% escape \

Operacije sa stringovima
Osim poreenja stringova, SQL podrava niz drugih operacija sa stringovima, kao to su: Spajanje stringova koritenjem || Konverzija u velika ili mala slova (UPPER, LOWER) Odreivanje duine stringa (LENGTH) Izdvajanje podstringa (SUBSTRING) ...

Definiranje redoslijeda n-torki u rezultatu


Atribut prema kome se definira redoslijed se navodi pomou kljunih rijei order by: select distinct customer-name from borrower, loan where borrower loan-number = loan.loan-number and branch-name = Perryridge order by customer-name Rastui ili opadajui redoslijed se definira koritenjem kljunih rijei desc (opadajui) ili asc (rastui): order by customer-name desc Rastui redoslijed je default

Operacije nad skupovima


SQL definira sljedee operacije nad skupovima: Unija (U) kljuna rije union Presjek () - kljuna rije intersect Razlika (\) - kljuna rije except

Ovi operatori eliminiraju duplikate u rezultatu Ukoliko je potrebno zadrati duplikate, koriste se union all, intersect all i except all Primjer koritenja union:
(select customer-name from depositor) union (select customer-name from borrower)

Operacije nad skupovima


Primjer koritenja intersect: (select customer-name from depositor) intersect (select customer-name from borrower) Primjer koritenja except: (select customer-name from depositor) except (select customer-name from borrower)

Agregirane funkcije
Agregirane funkcije na osnovu vrijednosti elemenata kolone vraaju jednu vrijednost kao rezultat Primjer ovakvih funkcija: raunanje sume vrijednosti kolone Neke od agregiranih funkcija u SQL su: avg srednja vrijednost min minimalna vrijednost max maksimalna vrijednost sum zbir vrijednosti count broj vrijednosti

Agregirane funkcije
Primjeri: select avg (balance) from account where branch-name = Perryridge select count (*) from customer select count (distinct customer-name) from depositor

Null vrijednost
Atribut moe imati neodreenu vrijednost, koja se oznaava sa null U okviru where se koristi is null: select loan-number from loan where amount is null Rezultat bilo koje aritmetike operacije sa null daje null Npr. 5+null=null Agregirane funkcije ignoriraju null vrijednosti

Ugnijeeni select upiti


SQL omoguava koritenje ugnijeenih select upita Ugineeni select upit predstavlja select-from-where podupit koji se nalazi u okviru drugog select upita Primjeri: select distinct customer-name from borrower where customer-name in (select customer-name from depositor) select distinct customer-name from borrower where customer-name not in (select customer-name from depositor)

Poreenje skupova
U okviru where se mogu porediti skupovi Primjer: select distinct T.branch-name from branch as T, branch as S where T.assets > S.assets and S.branch-city = Brooklyn

Modificiranje baze podataka


Podaci koji se nalaze u bazi podataka se mogu modificirati koritenjem: delete brisanje slogova insert dodavanje slogova update mijenjanje slogova

Brisanje slogova
Primjeri: delete from account where branch-name = Perryridge delete from account where balance < (select avg (balance) from account)

Dodavanje slogova
Primjeri: insert into account values (A-9732, Perryridge,1200) insert into account (branch-name, balance, account-number) values (Perryridge, 1200, A-9732) insert into account values (A-777,Perryridge, null)

Mijenjanje slogova
Primjeri: update account set balance = balance * 1.06 where balance > 10000 update account set balance = balance * 1.05 where balance <= 10000

Вам также может понравиться

  • Node
    Node
    Документ3 страницы
    Node
    Amir Karacic
    Оценок пока нет
  • Muhamedova A.S. Predskazanja
    Muhamedova A.S. Predskazanja
    Документ104 страницы
    Muhamedova A.S. Predskazanja
    Didodrag
    100% (5)
  • DB393 Jurcevic Matija PDF
    DB393 Jurcevic Matija PDF
    Документ64 страницы
    DB393 Jurcevic Matija PDF
    Amir Karacic
    Оценок пока нет
  • Strategija PI
    Strategija PI
    Документ36 страниц
    Strategija PI
    Amir Karacic
    Оценок пока нет
  • DHCP Protokol
    DHCP Protokol
    Документ2 страницы
    DHCP Protokol
    Amir Karacic
    Оценок пока нет
  • Formular Biznis Planaa
    Formular Biznis Planaa
    Документ12 страниц
    Formular Biznis Planaa
    Amir Karacic
    Оценок пока нет
  • Web Dizajn
    Web Dizajn
    Документ50 страниц
    Web Dizajn
    amirkaracic8427
    100% (1)
  • Ganoderma
    Ganoderma
    Документ8 страниц
    Ganoderma
    Amir Karacic
    Оценок пока нет
  • Njega Djeteta
    Njega Djeteta
    Документ32 страницы
    Njega Djeteta
    Amir Karacic
    Оценок пока нет
  • Javascript Dodatak
    Javascript Dodatak
    Документ6 страниц
    Javascript Dodatak
    Amir Karacic
    Оценок пока нет
  • Zračenje Antena
    Zračenje Antena
    Документ2 страницы
    Zračenje Antena
    Amir Karacic
    Оценок пока нет
  • PHP Prirucnik
    PHP Prirucnik
    Документ95 страниц
    PHP Prirucnik
    rampelstilski
    100% (2)
  • Izrada Web STR
    Izrada Web STR
    Документ9 страниц
    Izrada Web STR
    Amir Karacic
    Оценок пока нет
  • Operativni Sistem WINDOWS 7
     Operativni Sistem WINDOWS 7
    Документ170 страниц
    Operativni Sistem WINDOWS 7
    Amir Karacic
    Оценок пока нет
  • Stevia
    Stevia
    Документ19 страниц
    Stevia
    Amir Karacic
    Оценок пока нет
  • Priručnik e Poslovanje
    Priručnik e Poslovanje
    Документ208 страниц
    Priručnik e Poslovanje
    Ivana Nikolić
    100% (1)
  • Mate Ma Tika
    Mate Ma Tika
    Документ35 страниц
    Mate Ma Tika
    Ленче Стојанова
    Оценок пока нет
  • Konstrukcija Računara
    Konstrukcija Računara
    Документ9 страниц
    Konstrukcija Računara
    Amir Karacic
    Оценок пока нет
  • Internet Kupovina Sve Popularnija U BiH
    Internet Kupovina Sve Popularnija U BiH
    Документ3 страницы
    Internet Kupovina Sve Popularnija U BiH
    Amir Karacic
    Оценок пока нет
  • Internet Za Početnike
    Internet Za Početnike
    Документ48 страниц
    Internet Za Početnike
    Suad Šatara
    Оценок пока нет
  • Mate Ma Tika
    Mate Ma Tika
    Документ35 страниц
    Mate Ma Tika
    Ленче Стојанова
    Оценок пока нет
  • BP1-Uvod U Baze Podataka
    BP1-Uvod U Baze Podataka
    Документ43 страницы
    BP1-Uvod U Baze Podataka
    Amir Karacic
    Оценок пока нет
  • Seminar
    Seminar
    Документ16 страниц
    Seminar
    bnmillaz
    Оценок пока нет
  • Java Programiranje
    Java Programiranje
    Документ156 страниц
    Java Programiranje
    Daniel Dimitrov
    100% (1)
  • Informatika - U - Poslovanju - Pitanja I Odgovori - Seminarski, Diplomski, Maturski Radovi
    Informatika - U - Poslovanju - Pitanja I Odgovori - Seminarski, Diplomski, Maturski Radovi
    Документ30 страниц
    Informatika - U - Poslovanju - Pitanja I Odgovori - Seminarski, Diplomski, Maturski Radovi
    Amir Karacic
    Оценок пока нет
  • Upravljanje Neto Obrtnim Kapitalom
    Upravljanje Neto Obrtnim Kapitalom
    Документ11 страниц
    Upravljanje Neto Obrtnim Kapitalom
    Amir Karacic
    Оценок пока нет