Академический Документы
Профессиональный Документы
Культура Документы
BAZE PODATAKA i
ACCESS
Lazarevac 2012.
5. UPITI
Upiti (Query, Queries) predstavljaju modan alat koji prua pogled na podatke u bazi podataka
ili daje odgovore na specifina pitanja u vezi tih podataka. Na primer, ukoliko je potrebno
izlistati, tj. pogledati samo imena i prezimena svih italaca i grad u kojem ive, ali ne i ostale
podatke, mogude je kreirati upit koji prikazuje samo ova tri podatka. Ili, ukoliko je potrebno
pogledati imena i prezimena samo onih italaca koji ive, recimo, u Lazarevcu, onda bi se
upit ograniio samo na njih. Upiti se piu posebnim upitnim jezikom koji se naziva SQL. Upiti
se mogu kreirati na osnovu tabela ili drugih upita. U svakom trenutku, upiti pruaju sve
pogled na podatke u bazi podataka.
Access-ov upit je pitanje koje se postavlja u vezi sa podacima koji se nalaze u tabelama baze
podataka. Postavljanje pitanja u vezi sa tim podacima omogudavaju alatke za sastavljanje
upita (Query Tools). Upit moe da bude jednostavno pitanje o podacima koji su svi u jednoj
tabeli, ili sloeno pitanje koje se odnosi na podatke razmetene u vie tabela. Na postavljeno
pitanje Access prikazuje samo podatke koji su traeni (ako ih ima).
Vrste upita
Access podrava est vrsta upita:
Select je najceda vrsta upita. Upiti za izdvajanje podataka pronalaze i izdvajaju
podatke iz jedne ili vie tabela i prikazuje ih u dinamikom skupu iji se sadraj moe
pregledati, analizirati i aurirati.
Total je posebna verzija upita za izdvajanje podataka. Zbirni upiti omogudavaju
izraunavanje suma ili zbirnih vrednosti u upitima za izdvajanje podataka. Po
zadavanju ove vrste upita Access dodaje red Total u okno QBE (Query By Example).
Action upiti omogudavaju pravljenje nove tabele (Make Tables) ili auriranje
podataka u postojedim tabelama. Kada se unose izmene u upit za izdvajanje
podataka, te izmene se mogu praviti samo u jednom po jednom zapisu. Za razliku od
toga akcioni upiti omogudavaju auriranje vie zapisa u istoj operaciji.
Crosstab - ovi upiti prikazuju zbirne podatke u tabelarnom obliku poput programa za
tabelarne proraune, s tim to su zaglavlja redova i kolona zasnovana na poljima iz
tabele. Pojedinane delije u rezultirajudem dinamikom skupu su tabelarne.
Uz pomod upita moemo izdvajati podatke iz jedne ili vie tabela ukoliko ih povezuju kolone
sa istim podacima. Kada se koristi vie tabela istovremeno, Access prikazuje podatke iz njih u
jednom kombinovanom tabelarnom prikazu.
Omogudavaju biranje polja (mogude je zadavanje polja koja su potrebna za skup rezultata
upita) i biranje zapisa (koji ce zapisi biti izdvojeni u skup rezultata, mogude je zadati pomodu
odredjenih uslova).
Rezultati upita mogu se prikazati sortirani po odredjenom redosledu, koristiti za razne
proraune na osnovu podataka. Ponekad je potrebno da se u bazi podataka kreira nova
tabela koja ce sadrati podatke koji se dobijaju kao rezultat upita. Ova vrsta upita pravi novu
tabelu na osnovu podataka iz dinamikog skupa.
Dinamiki skup, nastao kao rezultat upita moe da ima upravo ona polja ili podatke koji su
potrebni na izvetaju ili na obrascu. Kada se izvetaj ili obrazac zasniva na upitu, svaki put
kada se odtampa izvetaj ili otvori obrazac, upit de izdvojiti najsveije podatke iz tabela.
Upite dalje moemo koristiti za pravljenje dijagrama, tj. na osnovu podataka dobijenih
upitom moe se napraviti dijagram, koji ce se kasnije koristiti na obrascu ili izvetaju. Mogu
se praviti dodatni upiti koji se zasnivaju na skupu zapisa koji su izdvojeni prethodim upitom.
To je veoma korisno za ad hoc upite, u kojima moe biti potrebno ponavljanje upita sa malo
izmenjenim uslovima.
Sekundarni upit (podupit) moe da se koristi za izmenu uslova, dok primarni upit i njegovi
podaci ostaju nepromenjeni. Access-ovi upiti mogu da izdvajaju podatke iz iroke lepeze
izvora. Mogu se postavljati pitanja u vezi sa podacima koji se nalaze u dBase, Paradox,
Btrieve i Microsoft SQL Server bazama podataka.
Kreiranje upita
Za poetak, potrebno je kreirati upit koji de prikazati imena i prezimena italaca i naziv grada
u kojem ive. U ovom, kao i narednim primerima, koristide se Query Design koji se nalazi u
tab-u Create, u delu Other, to je prikazano na slededoj slici.
Slika 1
U pop-up prozoru Show Table potrebno je izabrati tabelu(e) nad kojom de se upit kreirati. Za
opisani primer potrebna je tabela Citaoci. Izabrati je, kliknuti na dugme Add, pa Close. Tada
de se izabrana tabela pojaviti u prostoru za kreiranje upita.
Kada pritisnete tater Close nadi dete se u QBE (Query By Example specijalna aplikacija u
Access-u namenjena za jednostavnije kreiranje upita ) prozoru.
Prozor se sastoji od dva dela. U gornjem nalaze se tabele koje ste u prethodnom dijalogu
izabrali. Donji prozor sastoji se od nekoliko redova korisnih za sastavljanje upita:
Field - U ovaj red se upisuju ili dodaju imena polja
Table - U ovom redu se prikazuju imena tabela iz kojih potiu polja
Sort - U ovom redu se zadaje nain sortiranja podataka iz upita
Show - Ovo polje je za potvrivanje i odredjuje da li ce polje biti prikazano ili ne
Criteria - U ovaj red se upisuje prvi red uslova za izdvajanje zapisa
Or - Ovo je prvi slededi red u koji se mogu uneti dodatni uslovi za izdvajanje zapisa
Da bi obeleio koje tabele su povezane Access koristi linije. Linija koja spaja dve tabele je
spoljna linija.
Gornjem delu prozora se moe promeniti veliina, i u njemu se mogu premetati tabele,
ukoliko je potreban pregledniji prikaz tabela i spojeva izmeu njih.
Slika 2
Slika 3
Slika 4
Da bi se dodale nove tabele potrebno je pomeriti pokaziva mia u gornje okno i pritisnuti
desni taster prilikom ega de se otvoriti meni u kojem treba odabrati opciju Show table.
Izbor tabele se moe napraviti duplim pritiskom na njeno ime. Tabela se moe
najjednostavnije obrisati pomodu selektovanja pritiskom na tabelu ili na neko njeno polje, i
pritiskom tastera Delete.
Nakon izbora tabela koje de uestvovati u upitu, neophodno je izabrati polja iz datih tabela i
dodati ih u red Filed donjeg prozora Table Query-a. Polja se mogu izdvajati jedno po jedno,
moe se vriti odabir vie polja istovremeno, ili jednostavno izabrati sva polja. Za to se mogu
koristiti tastatura ili mi.
Prethodno selektovana polja prenose se u red za izbor polja ili se biraju sa padajude liste u
redovima Field, odnosno Table. Za selektovanje vie polja istovremeno koriste se funkcijski
tasteri Ctrl i Shift.
Osim dodavanja polja pojedinano ili grupno u QBE okno mogu se umetnuti i sva polja tabele
istovremeno. Access nudi dve metode izbora svih polja: prevlaenje svih polja kao grupe ili
biranjem referentne oznake za sva polja-zvezdice (*). Ukoliko se upit sastoji od polja dve ili
vie tabele postupak je isti, dodamo eljena polja iz prve, potom iz druge... Najjednostavniji
nain za to je odabir grupe polja i prevlaenje nadole u QBE okno.
Kreiranje kriterijumskog upita
Za zadavanje uslova koje slogovi moraju da ispunjavaju koristi se red Criteria. Uslovi
tekstualnog tipa unose se u polja za tekst na isti nain kao i drugi podaci. Da bi se koristili
takvi uslovi, potrebno je upisati primer vrednosti podatka koji treba da bude pronaen u tom
polju. Moe se koristiti i negacija Not ispred nekog teksta, i na taj nain de biti prikazani svi
slogovi koji ne sadre tu vrednost.
Takoe, kod uslova za numerika ili datumska polja mogu se koristiti operatori za
uporeivanje, kao to su (>)vede, (<) manje, (=)jednako.
Dalje, potrebno je kreirati upit koji prikazuje imena i prezimena samo onih italaca koji ive u
Lazarevcu.
Slika 5
Slika 6
Ako elimo da sakrijemo neko polje uradidemo deekiranje.
Slika 7
Na kraju moete izabrati 5 naina prikaza upita:
Design View - standardni QBE prikaz upita, Datasheet View - prikazuje se sadraj dinamikog
skupa u tabelarnom obliku, SQL View - Moe se videti izgled odgovarajude SQL komande,
PivotTable View i PivotChart View. Neke upite mogude je kreirati jedino pomodu SQL-a.
SQL View
Kreiranje upita na ovaj nain, tj. kroz Query Design, u pozadini generie SQL kod koji se
izvrava i daje rezultat. SQL kod se moe videti otvaranjem upita u SQL View, tj. klikom
desnim tasterom mia na jeziak upita, gde se otvara pomodni meni, odakle treba izabrati
opciju SQL View.
Slika 8
Slika 9
U SQL kodu primeduju se sledede klauzule: select, from, inner join i where.
U okviru select klauzule upisuju se atributi koje upit treba da prikae, u from klauzuli
specificiraju se tabele iji atributi se koriste, inner join klauzula specificira vezu izmeu
tabela, odnosno tabele i upita, i povezujudi atribut koristedi re ON, dok klauzula where slui
za specificiranje uslova, odnosno kriterijuma.
Prilikom projektovanja tabele moete nadi ogranienja u pogledu auriranja. Access nede
uvek dozvoliti auriranje sadraja tabela. Auriranje se moe izvriti samo u sluaju da su sva
polja iz samo jedne tabele ili iz tabela izmeu kojih postoji veza 1:1. Svaki upit za ije
kreiranje je potrebno napraviti snimak podataka ne omogudava auriranje (unakrsni, zbirni
upiti, polja u kojima je vrednost Unique Value Yes, upiti za zadavanje SQL komandi,
izraunata polja, polja sa pravom samo za itanje, korisnici koji nemaju pravo pristupa i
ODBC tabele bez primarnog kljua).
Tabele nede automatski biti povezane ukoliko to nije uinjeno na nivou baze podataka, ili ako
je iskljuena opcija AutoJoin.
Promena vrste spoja vri se odabirom spoljne linije i duplim pritiskom na nju, prilikom ega
de se pojaviti okvir za dijalog Edit Relationships gde je potrebno izabrati Join Type (slika).
Tada se otvara okvir za dijalog Join Properties prua izbor jednog od tri dugmeta za opcije
koje pruaju sledede mogudnosti:
Slika 10
Only Include Rows Where the joined filds from both tables are equal (ukljuiti iz obe
tabele samo redove u kojima je sadraj spoljnih polja jednak. Ova opcija nalae
Access-u da iz obe tabele izdvoji sve zapise u kojima spoljna polja sadre iste
vrednosti. Ovo su jednakovredni ili unutranji spojevi.
Include ALL Record Form (ime prve tabele) and only those records from (ime druge
tabele) where the joined fields are equal (obavezno je ukljuivanje svih zapisa iz prve
tabele i samo onih zapisa iz druge tabele u kojima je sadraj spoljnih polja jednak).
Ako se kao prva koristi tabela, Artikal, a kao druga tabela StavlaKataloga, bide
prikazani svi artikli (ak i oni kojih nema u katalogu) i samo ona stavkakataloga koja
imaju odgovarajudi artikal. Ovo su desni spoljni spojevi.
Include ALL records form (ime druge tabele) and only those records from (ime prve
tabele) where the joined fields are equal (ukljuiti sve zapise iz druge tabele i samo
one zapise iz prve tabele u kojima je sadraj spoljnih polja jednak).
Access omogudava rad samo sa specifinim delovima tabele u sluaju kada tabela sadri
veliki broj slogova (samo sa slogovima koji ispunjavaju odreene uslove) uz pomod upita za
izdvajanje podataka. Oni izdvajaju podatke iz jedne ili vie meusobno povezanih tabela i
omogudavaju postavljanje pitanja i dobijanje odgovora koji se tiu podataka smetenih u
tabelama baze podataka.
Uslovi se postavljaju u kolonama odgovarajudih polja u redu Criteria.
Za pravljenje slogova koji ispunjavaju istovremeno vie uslova vezanih za razliita polja
potrebno je staviti ih u jedan isti red (koji ih povezuje logikim i ). U sluaju izdvajanja
slogova koji ispunjavaju bilo koji od navedenih uslova, oni se smetaju jedan ispod drugog ili
povezuju operatorom Or.
Logiki operatori u upitu
Operatori su pored funkcija izraza osnovni delovi Access-ovih operacija. Koriste se u
operacijama kao to su postavljanje standardnih (default) vrednosti, zadavanje uslova
prilikom unosa vrednosti u tabele, koridenje uslova u upitima, postavljanje izraunatih polja
05.02.2012 Msc. Velja Milanovi, prof.
Baze podataka i Access 9
Slika 11
Slika 12
Operator AND.
Slika 13
Ako uslove upiemo u dve razliite kolone QBE tabele, onda su oni povezani operatorom
AND.
Slika 14
Relacioni operatori.
Slika 15
Slika 16
Slika 17
Iz baze podataka izdvojiti sve kupce ije ime mesta poinje sa slovom A, a sastoji se iz tri
slova ili je ID_KNJIGA izmeu 5 i 15.
Slika 18
Prilikom zadavanja irih uslova moemo koristiti i uglaste zagrade [ ] . Uglastiim zagradama
formiramo listu. Bilo koji znak koji se pojavljuje na listi unautar uglastih zagrada pojavide se
na odgovarajudem mestu u skupu rezultata.
Iz baze podataka izdvojiti sve itaoce ije mesto boravka poinje na slova L, B, T.
Slika 19
Parametarski upiti
Parametar se u upit unosi tako to u polje criteria eljeni parametar upisujemo izmeu
uglastih zagrada.
Slika 20
Slika 21
Rezultat:
Slika 22
Zbirni prorauni
Ovi prorauni, za razliku od izraunatih polja, za dobijanje rezultata uzimaju vrednosti iz vie
zapisa u tabeli. Da bi napravili zbirni proraun u nekom upitu, potrbno je uraditi sledede:
Slika 23
Ukoliko u upitu koristimo i zbirne proraune i kriterijume za izbor podataka, u polje total svih
kolona u kojima smo definisali kriterijum za izbor treba upisati izraz Where.
Ako kriterijum za izbor podataka elimo da primenimo pre zbirnog obrauna, operator
Where treba upisati u deliju Total onog polja po kome elimo da napravimo izbor zapisa.
Slika 24
Slika 25
Ukoliko u upit koristimo i zbirne proraune i izraunata polja, u polja total svih kolona u
kojima smo definisali izraunata polja ( a ne elimo grupisanje ) treba upisati izraz Expression.
Slika 26
Zbirne proraune moemo raditi i sa izraunatim poljima, ali izraz u svakom izraunatom
polju ne sme da se odnosi na neka druga izraunata polja.
Slika 27
U ovom primeru je koriden izraz: UKUPNA VREDNOST: [Cena]*1,18 koji se moe pisati u
posebnom okviru Expression Builder ili u polju QBE. Ako piemo u polju izraz zumiramo tako
to aktiviramo desni klik na polje pa onda Zoom.
Slika 28
Slika 29
Slika 30
Upit za auriranje
Ovaj upit omogudava promenu odreenih zapisa u tabeli. kreira se na slededi nain.
1. Aktivirati ikonicu Update Query. U QBE se pojavljuje novi red Update TO.
2. U deliju Criteria upisujemo kriterijume za izbor polja koja elimo da auriramo, a u deliju
Update To upisujemo novu vrednost polja ili izraz za izraunavanje vrednosti
Slededi upit de povedati cene knjiga za 20% za sve itaoce iz Lazarevca.
Slika 31
Slika 32