Академический Документы
Профессиональный Документы
Культура Документы
Kiseljak, 11.5.2010.
Sadraj predavanja
Osnovna struktura Operacije nad skupovima Agregirane funkcije Null vrijednost Ugnijeeni upiti Modificiranje baze podataka
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
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) ...
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)
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
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
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