Uvod u Access SQL

Kada želite dohvatiti podatke iz baze podataka, tražite podatke pomoću SQL-a (Structured Query Language). SQL je računalni jezik vrlo sličan engleskome koji razumiju programi za baze podataka. Znanje SQL-a je važno jer svaki upit u programu Microsoft Access koristi SQL. Razumijevanje funkcioniranja SQL-a može pomoći pri stvaranju boljih upita i može vam olakšati rješavanje upita kada ne vrati željene rezultate.

Napomena : SQL za web-upit nije moguće uređivati.

Sadržaj članka

Što je SQL?

Osnovni SQL uvjeti: SELECT, FROM i WHERE

Sortiranje rezultata: ORDER BY

Rad sa sažetim podacima: GROUP BY i HAVING

Spajanje rezultata upita: UNION

Dodatne informacije o uvjetu SELECT

Dodatne informacije o uvjetu FROM

Dodatne informacije o uvjetu WHERE

Što je SQL?

SQL je računalni jezik za rad sa skupovima činjenica i vezama među njima. Relacijski programi za baze podataka, primjerice Access, koriste SQL za rad s podacima. Kao i mnogi drugi računalni jezici, SQL je međunarodni standard koji priznaju standardizacijske ustanove, primjerice ISO i ANSI.

SQL se koristi za opisivanje skupova podataka koji vam mogu pomoći odgovoriti na pitanja. Kada koristite SQL, morate upotrijebiti ispravnu sintaksu. Sintaksa je skup pravila po kojima se elementi jezika pravilno kombiniraju. Sintaksa programa SQL temelji se na sintaksi engleskog jezika i koristi mnoge iste elemente kao i sintaksa modula programskog jezika Visual Basic for Applications (VBA).

Primjerice, jednostavna SQL naredba koja prikazuje popis prezimena kontakata čije je ime Marija izgleda ovako:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Napomena : SQL se ne koristi samo za obradu podataka, već i za stvaranje i izmjenu dizajna objekata baze podataka, primjerice tablica. Dio SQL-a koji se koristi za stvaranje i izmjenu objekata u bazama podataka zove se jezik za definiranje podataka (Data-Definition Language, DDL). Ova tema ne opisuje jezik za definiranje podataka (DDL). Dodatne informacije potražite u članku Stvaranje i izmjena tablica ili indeksa pomoću upita za definiranje podataka.

Naredbe SELECT

Da biste opisali skupove podataka pomoću SQL-a, morate napisati naredbu SELECT. Naredba SELECT sadrži potpun opis skupova podataka koje želite dohvatiti iz baze podataka. Popis obuhvaća sljedeće:

  • Koje tablice sadrže te podatke?

  • Kako se podaci iz različitih izvora povezuju?

  • Koja će polja ili izračuni dati te podatke?

  • S kojim se kriterijima podaci moraju podudarati da bi bili obuhvaćeni?

  • Treba li sortirati rezultate i kako?

SQL uvjeti

SQL naredba ima sastavne dijelove – uvjete. Svaki uvjet obavlja funkciju za SQL naredbu. Neki uvjeti su obavezni u SQL naredbi. U sljedećoj su tablici navedeni najčešći SQL uvjeti.

SQL uvjet

Funkcija

Obavezan

SELECT

Daje popis polja koja sadrže relevantne podatke.

Da

FROM

Navodi tablice koje sadrže polja navedena u uvjetu SELECT.

Da

WHERE

Određuje kriterije polja s kojima se svaki zapis mora podudarati da bi bio uvršten u rezultate.

Ne

ORDER BY

Pobliže opisuje način sortiranja rezultata.

Ne

GROUP BY

U SQL naredbi koja sadrži agregatne funkcije popisuje polja koja nisu sažeta u uvjetu SELECT.

Samo ako ima takvih polja

HAVING

U SQL naredbi koja sadrži agregatne funkcije navodi uvjete koji se primjenjuju na polja sažeta u naredbi SELECT.

Ne

SQL izrazi

Svaka se SQL naredba sastoji od izraza, koji se mogu usporediti s vrstama riječi. U sljedećoj su tablici popisane vrste SQL izraza.

SQL izraz

Vrsta riječi kojoj je sličan

Definicija

Primjer

identifikator

imenica

Naziv koji se koristi za prepoznavanje objekta baze podataka, primjerice naziv polja.

Kupci.[Broj telefona]

operator

glagol ili prilog

Ključna riječ koja predstavlja radnju ili je pobliže označuje.

AS

konstanta

imenica

Vrijednost koja se ne mijenja, primjerice broj ili NULL.

42

izraz

pridjev

Kombinacija identifikatora, operatora, konstanti i funkcija koje se svode na jednu vrijednost.

>= Proizvodi.[Jedinična cijena]

Vrh stranice

Osnovni SQL uvjeti: SELECT, FROM i WHERE

SQL naredba ima sljedeći općeniti oblik:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Napomene : 

  • Access ignorira prijelome retka u SQL naredbi. No da biste poboljšali čitljivost svojih SQL naredbi sebi i drugima, preporučuje se da svaku naredbu pišete u zaseban redak.

  • Svaka naredba SELECT završava točkom sa zarezom (;). Točka sa zarezom može se pojaviti na kraju zadnje naredbe ili u zasebnom retku na kraju SQL naredbe.

Primjer u programu Access

Sljedeći primjer pokazuje kako bi mogao izgledati jednostavan upit odabiranja u programu Access:

Kartica SQL objekata koja prikazuje naredbu SELECT

1. Uvjet SELECT

2. Uvjet FROM

3. Uvjet WHERE

Ovaj primjer SQL naredbe znači "Odaberi podatke spremljene u poljima pod nazivom Adresa e-pošte i Tvrtka, iz tablice Kontakti, točnije one zapise u kojima vrijednost u polju Grad glasi Sisak".

Pogledajte primjer, uvjet po uvjet, da biste vidjeli kako funkcionira sintaksa SQL-a.

Uvjet SELECT

SELECT [E-mail Address], Company

Ovo je uvjet SELECT. Sastoji se od operatora (SELECT) nakon kojeg slijede dva identifikatora ([Adresa e-pošte] i Tvrtka).

Ako identifikator sadrži razmake i posebne znakove (primjerice, "Adresa e-pošte"), mora se nalaziti u uglatim zagradama.

U uvjetu SELECT ne mora biti navedeno koje tablice sadrže polja niti se u njemu smiju navoditi uvjeti koje podaci moraju ispuniti da bi bili uvršteni.

U naredbi SELECT uvjet SELECT uvijek se pojavljuje ispred uvjeta FROM.

Uvjet FROM

FROM Contacts

Ovo je uvjet FROM.

U uvjetu FROM ne navode se polja koja treba odabrati.

Uvjet WHERE

WHERE City="Seattle"

Ovo je uvjet WHERE. Sastoji se od operatora (WHERE) nakon kojeg slijedi izraz (Grad="Sisak").

Napomena : Za razliku od uvjeta SELECT i FROM, uvjet WHERE nije obavezan element naredbe SELECT.

Pomoću uvjeta SELECT, FROM i WHERE možete izvršiti mnoge akcije koje SQL omogućuje. Dodatne informacije o korištenju tih uvjeta potražite u odjeljcima na kraju ovog članka:

Dodatne informacije o uvjetu SELECT

Dodatne informacije o uvjetu FROM

Dodatne informacije o uvjetu WHERE

Sortiranje rezultata: ORDER BY

Kao i Microsoft Office Excel, Access omogućuje sortiranje rezultata u podatkovnoj tablici. Pomoću uvjeta ORDER BY u upitu možete i pobliže opisati način na koji želite sortirati rezultate kada se upit pokrene. Ako koristite uvjet ORDER BY, to mora biti posljednji uvjet u SQL naredbi.

Uvjet ORDER BY sadrži popis polja koja želite koristiti za sortiranje, u istom poretku u kojem želite primijeniti operacije sortiranja.

Pretpostavimo, primjerice, da najprije želite sortirati rezultate po vrijednosti u polju Tvrtka silaznim redoslijedom te ih – ako nema zapisa s istom vrijednošću za polje Tvrtka – zatim sortirati po vrijednostima u polju Adresa e-pošte uzlaznim redoslijedom. Vaš uvjet ORDER BY izgledat će ovako:

ORDER BY Company DESC, [E-mail Address]

Napomena : Po zadanom, Access sortira vrijednosti uzlaznim redoslijedom (A – Ž, od manjeg prema većem). Koristite ključnu riječ DESC da biste vrijednosti sortirali silaznim redoslijedom.

Dodatne informacije o uvjetu ORDER BY potražite u temi Uvjet ORDER BY.

Vrh stranice

Rad sa sažetim podacima: GROUP BY i HAVING

Ponekad vam odgovara raditi sa sažetim podacima, primjerice podacima o ukupnoj mjesečnoj prodaji ili najskupljim artiklima na zalihama. Da biste to učinili, možete primijeniti funkcija zbrajanja na polje u uvjetu SELECT. Ako, primjerice, želite da vaš upit prikaže broj adresa e-pošte navedenih za svaku tvrtku, uvjet SELECT izgledat će ovako:

SELECT COUNT([E-mail Address]), Company

Agregatne funkcije koje možete koristiti ovise o vrsti podataka u polju ili izrazu koji želite koristiti. Dodatne informacije o dostupnim agregatnim funkcijama potražite u članku Agregatne SQL funkcije.

Određivanje polja koja se ne koriste u agregatnoj funkciji: uvjet GROUP BY

Kada koristite agregatne funkcije, obično morate stvoriti uvjet GROUP BY. Uvjet GROUP BY popisuje sva polja na koja ne primjenjujete agregatnu funkciju. Ako na sva polja u upitu primjenjujete agregatne funkcije, ne morate stvarati uvjet GROUP BY.

Uvjet GROUP BY dolazi neposredno nakon uvjeta WHERE, odnosno uvjeta FROM ako nema uvjeta WHERE. Uvjet GROUP BY popisuje sva polja koja se pojavljuju u uvjetu SELECT.

Primjerice, da se nadovežemo na prethodni primjer, ako vaš uvjet SELECT primjenjuje agregatnu funkciju na polje [Adresa e-pošte], ali ne i na polje Tvrtka, vaš će uvjet GROUP BY izgledati ovako:

GROUP BY Company

Dodatne informacije o uvjetu GROUP BY potražite u temi Uvjet GROUP BY.

Ograničavanje agregatnih vrijednosti pomoću grupnih kriterija: uvjet HAVING

Ako želite koristiti kriterije za ograničavanje rezultata, ali se polje na koje želite primijeniti kriterij koristi u agregatnoj funkciji, ne možete koristiti uvjet WHERE. Umjesto toga, koristite uvjet HAVING. Uvjet HAVING funkcionira isto kao uvjet WHERE, ali se koristi za agregirane podatke.

Pretpostavimo, primjerice, da želite koristiti funkciju AVG (koja računa prosječnu vrijednost) na prvom polju u uvjetu SELECT:

SELECT COUNT([E-mail Address]), Company

Ako upit želite ograničiti na rezultate koji se temelje na funkciji COUNT, ne možete koristiti kriterij za to polje u uvjetu WHERE. Umjesto toga, stavite kriterij u uvjet HAVING. Ako, primjerice, želite da upit prikaže retke samo ako postoji više adresa e-pošte pridruženih tvrtki, uvjet HAVING izgledat će ovako:

HAVING COUNT([E-mail Address])>1

Napomena : Upit može imati uvjet WHERE i uvjet HAVING – kriteriji za polja koja se ne koriste u agregatnoj funkciji idu u uvjet WHERE, a kriteriji za polja koja se koriste u agregatnoj funkciji idu u uvjet HAVING.

Dodatne informacije o uvjetu HAVING potražite u temi Uvjet HAVING.

Vrh stranice

Spajanje rezultata upita: UNION

Kada želite zajedno, kao kombinirani skup, pregledati sve podatke koje je vratilo više sličnih upita odabiranja, koristite operator UNION.

Operator UNION omogućuje spajanje dviju naredbi SELECT u jednu. Naredbe SELECT koje spajate moraju imati jednak broj izlaznih polja, u istom poretku i s istim ili kompatibilnim vrstama podataka. Kada pokrenete upit, podaci iz svakog skupa odgovarajućih polja spajaju se u jedno izlazno polje da bi izlaz upita imao isti broj polja kao i svaka naredba odabira.

Napomena : Za potrebe upita s unijom, vrste podataka Broj i Tekst smatraju se kompatibilnima.

Kada koristite operator UNION, pomoću ključne riječ ALL možete odrediti želite li da rezultati upita sadrže dvostruke retke, ako postoje.

Osnovna SQL sintaksa za upit s unijom koji spaja dvije naredbe SELECT jest sljedeća:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Pretpostavimo, primjerice, da imate tablicu naziva Proizvodi i drugu tablicu naziva Usluge. Obje tablice imaju polja u kojima su zapisani naziv proizvoda ili usluge, cijena, jamstvo ili dostupnost jamstva te nudite li proizvod ili uslugu ekskluzivno. Iako su u tablici Proizvodi spremljeni podaci o jamstvu, a u tablici Usluge informacije o garanciji, osnovna informacija je ista (isporučuje li se uz proizvod ili usluga jamstvo kvalitete). Upit s unijom možete koristiti za spajanje četiriju polja iz dvije tablice, kao što je to navedeno u sljedećem primjeru:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Dodatne informacije o spajanju naredbi SELECT pomoću operatora UNION potražite u članku Spajanje rezultata nekoliko upita odabiranja pomoću upita s unijom.

Vrh stranice

Dodatne informacije o uvjetu SELECT

U naredbi SELECT uvjet SELECT popisuje polja koja sadrže podatke koje želite koristiti.

Identifikatore stavite u uglate zagrade

U uvjetu SELECT naziv polja možete staviti u uglate zagrade. Ako naziv ne sadrži razmake i posebne znakove (primjerice, interpunkciju), uglate zagrade nisu obavezne. Ako naziv sadrži razmake ili posebne znakove, morate koristiti zagrade.

Savjet : Naziv koji sadrži razmake lakše je čitati i možete uštedjeti vrijeme prilikom dizajniranja obrazaca i izvješća, ali možda morate više tipkati prilikom pisanja SQL naredbe. To biste trebali imati u vidu kada imenujete objekte u bazi podataka.

Ako SQL naredba ima dva ili više polja istog naziva, morate dodati svaki od naziva u naziv polja u uvjetu SELECT. Za izvor podataka upotrijebite isti naziv koji ste koristili u uvjetu FROM.

Odaberite sva polja

Kada želite obuhvatiti sva polja iz izvora podataka, možete popisati sva polja zasebno u uvjetu SELECT ili koristiti zvjezdicu (*) kao zamjenski znak. Kada koristite zvjezdicu, Access prilikom pokretanja upita određuje koja polja sadrže podatke i uvrštava ta polja u upit. Na taj se način jamči da će se upit ažurirati ako se u izvor podataka dodaju nova polja.

Zvjezdicu možete koristiti s jednim ili više izvora podataka u SQL naredbi. Ako koristite zvjezdicu, a postoji više izvora podataka, morate navesti naziv izvora podataka zajedno sa zvjezdicom da bi Access mogao odrediti iz kojih izvora podataka treba uvrstiti polja.

Pretpostavimo, primjerice, da želite odabrati sva polja iz tablice Narudžbe i samo adrese e-pošte iz tablice Kontakti. Vaš uvjet SELECT izgledat će ovako:

SELECT Orders.*, Contacts.[E-mail Address]

Napomena : Zapamtite kada ste koristili zvjezdicu. Ako kasnije neplanirano dodate nova polja u izvor podataka, rezultati upita možda neće biti onakvi kakve ste očekivali.

Odaberite jedinstvene vrijednosti

Ako znate da će vaša naredba odabrati suvišne podatke, a vi želite da sadržava samo jedinstvene vrijednosti, možete u uvjetu SELECT koristiti ključnu riječ DISTINCT. Pretpostavimo, primjerice, da svaki od vaših klijenata pokriva više različitih područja, a neki od njih koriste isti broj telefona. Ako želite biti sigurni da će se svaki broj telefona prikazati samo jedanput, vaš uvjet SELECT izgledat će ovako:

SELECT DISTINCT [txtCustomerPhone]

Koristite zamjenske nazive za polja ili izraze: ključna riječ AS

Pomoću ključne riječi AS i pseudonima polja u uvjetu SELECT možete promijeniti oznaku koja se prikazuje za bilo koje polje u prikazu podatkovne tablice. Pseudonim polja jest naziv koji dodjeljujete polju u upitu da biste pojednostavnili čitanje rezultata. Ako, primjerice, želite odabrati podatke iz polja s nazivom txtKupTel, a polje sadrži brojeve telefona kupaca, možete poboljšati čitljivost rezultata pomoću pseudonima u uvjetu SELECT kako slijedi:

SELECT [txtCustPhone] AS [Customer Phone]

Napomena : Morate koristiti pseudonim polja kada koristite izraz u uvjetu SELECT.

Odabir pomoću izraza

Ponekad želite pogledati izračune koji se temelje na vašim podacima ili dohvatiti samo dio podataka polja. Pretpostavimo, primjerice, da želite vidjeti godine rođenja kupaca utemeljene na podacima u polju DatumRođenja u vašoj bazi podataka. Vaš uvjet SELECT izgledat će ovako:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Izraz se sastoji od funkcije DatePart i dva argumenta  — "yyyy" (konstanta) i [DatumRođenja] (identifikator).

Možete koristiti bilo koji valjan izraz kao polje, ako izraz kao rezultat daje jednu vrijednost kada mu se da jedna ulazna vrijednost.

Vrh stranice

Dodatne informacije o uvjetu FROM

U naredbi SELECT uvjet FROM određuje koje tablice ili upiti sadrže podatke koje će koristiti uvjet SELECT.

Pretpostavimo da želite saznati broj telefona određenog kupca. Uz pretpostavku da tablica sadrži polje u kojem su pohranjeni ti podaci i koje se zove tblKupac, uvjet FROM izgledat će ovako:

FROM tblCustomer

Identifikatore stavite u uglate zagrade

Naziv možete staviti u uglate zagrade. Ako naziv ne sadrži razmake i posebne znakove (primjerice, interpunkciju), uglate zagrade nisu obavezne. Ako naziv sadrži razmake ili posebne znakove, morate koristiti zagrade.

Savjet :  Naziv koji sadrži razmake lakše je čitati i možete uštedjeti vrijeme prilikom dizajniranja obrazaca i izvješća, ali možda morate više tipkati prilikom pisanja SQL naredbe. To biste trebali imati u vidu kada imenujete objekte u bazi podataka.

Koristite zamjenske nazive za izvore podataka

Pomoću pseudonima tablice u uvjetu FROM možete koristiti različite nazive za izvore podataka u naredbi SELECT. Pseudonim tablice naziv jest koji dodjeljujete izvoru podataka u upitu kada koristite izraz kao izvor podataka ili da biste pojednostavnili čitanje SQL naredbe. To može biti posebno korisno ako je naziv izvora podataka dug ili kompliciran za tipkanje, posebice kada postoji više polja iz različitih tablica koja imaju isti naziv.

Ako, primjerice, želite odabrati podatke iz dva polja, oba s nazivom ID, pri čemu je jedno od njih iz tablice tblKupac, a drugo iz tablice tblNarudžba, vaš uvjet SELECT izgledat će ovako:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Pomoću pseudonima tablice u uvjetu FROM možete olakšati tipkanje upita. Vaš uvjet FROM, sa pseudonimima tablice, izgledat će ovako:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Te pseudonime tablice možete koristiti u uvjetu SELECT kako slijedi:

SELECT [C].[ID], [O].[ID]

Napomena : Kada koristite pseudonim tablice, možete se pozvati na izvor podataka u SQL naredbi pomoću pseudonima ili pomoću punog naziva izvora podataka.

Spajanje povezanih podataka

Kada želite spojiti parove zapisa iz dva izvora podataka u jedan zapis u rezultatu upita, možete izvesti spajanje. Spajanje je SQL operacija koja određuje odnos između dva izvora podataka te navodi treba li uvrstiti podatke iz jednog izvora ako nema odgovarajućih podataka iz drugog izvora.

Da biste spojili informacije iz dva izvora podataka, izvedite operaciju spajanja na polju koje im je zajedničko. Kada se vrijednosti pohranjene u polju podudaraju, podaci iz zapisa spajaju se u rezultatima.

Uz spajanje podataka, operaciju spajanja možete koristiti i da biste odredili želite li obuhvatiti rezultate iz jedne tablice ako nema odgovarajućih zapisa u povezanoj tablici.

Pretpostavimo, primjerice, da u upitu želite koristiti podatke iz dvije tablice: tblKupac i tblNarudžba. Obje tablice imaju polje IDKupca, koje određuje identitet kupca. Svaki zapis u tablici tblKupac može imati jedan ili više podudarnih zapisa u tablici tblNarudžba, a podudarne vrijednosti moguće je odrediti pomoću vrijednosti u polju IDKupca.

Ako želite spojiti tablice tako da se u upitu spajaju zapisi iz tablica, izostavljajući zapise iz bilo koje od tablica ako nema podudarnih zapisa u drugoj tablici, vaš uvjet FROM izgledat će ovako (prijelom retka dodan radi bolje čitljivosti):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

U programu Microsoft Office Access spajanje se odvija u uvjetu FROM u naredbi SELECT. Postoje dvije vrste spajanja: unutarnji spojevi i vanjski spojevi. U sljedećem su odjeljku objašnjene te dvije vrste spojeva.

Unutarnji spojevi

Unutarnji spojevi najčešća su vrsta spoja. Kada se pokrene upit s unutarnjim spojem, jedini zapisi uvršteni u rezultate upita jesu zapisi za koje postoji zajednička vrijednost u obje spojene tablice.

Unutarnji spoj ima sljedeću sintaksu (prijelom retka dodan radi bolje čitljivosti):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

U sljedećoj su tablici opisani različiti dijelovi operacije INNER JOIN.

Dio

Opis

tablica1, tablica2

Nazivi tablica iz kojih se kombiniraju zapisi.

polje1, polje2

Nazivi spojenih polja. Ako nisu numerička, polja moraju biti iste vrsta podatka i sadržavati istovrsne podatke, ali ne moraju imati isti naziv.

uspopr

Bilo koji relacijski operator usporedbe: "=," "<," ">," "<=," ">=," ili "<>."

Vanjski spojevi

Vanjski su spojevi slični unutarnjim spojevima jer govore upitu kako spojiti informacije iz dva izvora. Različiti su po tome što ujedno određuju treba li uvrstiti podatke kada ne postoje zajedničke vrijednosti. Vanjski spojevi sadrže informacije o smjeru: možete odrediti želite li uvrstiti sve zapise iz prvog izvora podataka navedenog u spajanju (tzv. lijevog spoja) ili sve zapise iz drugog izvora podataka u spajanju (tzv. desnog spoja).

Vanjski spoj ima sljedeću sintaksu:

FROM tablica1 [ LEFT | RIGHT ] JOIN tablica2
ON tablica1.polje1operusp tablica2.polje2

U sljedećoj su tablici opisani različiti dijelovi operacija LEFT JOIN i RIGHT JOIN.

Dio

Opis

tablica1, tablica2

Nazivi tablica iz kojih se kombiniraju zapisi.

polje1, polje2

Nazivi spojenih polja. Polja moraju biti iste vrsta podatka i sadržavati istovrsne podatke, ali ne moraju imati isti naziv.

operatorusporedbe

Bilo koji relacijski operator uspoređivanja: "=," "<," ">," "<=," ">=," ili "<>."

Dodatne informacije o spajanju potražite u članku Spajanje tablica i upita.

Vrh stranice

Dodatne informacije o uvjetu WHERE

Kada želite koristiti podatke radi ograničavanja broja zapisa koje vraća upit, koristite kriteriji upita u uvjetu WHERE naredbe SELECT. Kriterij upita sličan je formuli – to je niz koji se može sastojati od referenci polja, operatora i konstanti. Kriteriji upita vrsta su izraz.

U sljedećoj su tablici prikazani primjeri kriterija i objašnjeno njihovo djelovanje.

Kriteriji

Opis

>25 i <50

Kriterij se odnosi na numeričko polje, npr. polje Cijena ili JedinicaNaSkladištu. Sadrži samo one zapise za koje polje sadrži vrijednost veću od 25 i manju od 50.

DateDiff ("yyyy", [DatumRođenja], Date()) > 30

Ovaj kriterij odnosi se na polje datuma/vremena, npr. polje DatumRođenja. Samo zapisi za koje je broj godina koji je prošao od datuma rođenja osobe i današnjeg datuma veći od 30 uvrštavaju se u rezultat upita.

Is Null

Ovaj kriterij može se primijeniti na bilo koju vrstu polja za prikaz zapisa u kojima je vrijednost polja null.

Kao što je prikazano u prethodnoj tablici, kriteriji se međusobno mogu bitno razlikovati, ovisno o vrsti podataka na koju se primjenjuju i vašim konkretnim potrebama. Neki su kriteriji jednostavni i koriste osnovne operatore i konstante. Drugi su složeni i koriste funkcije i posebne operatore te sadrže reference polja.

Važno : Ako se polje koristi u agregatnoj funkciji, ne možete odrediti kriterije za to polje u uvjetu WHERE. Umjesto toga, koristite uvjet HAVING da biste odredili kriterije za agregatna polja. Dodatne informacije potražite u odjeljku Rad sa sažetim podacima: GROUP BY i HAVING.

Sintaksa uvjeta WHERE

Uvjet WHERE ima sljedeću osnovnu sintaksu:

WHERE field = criterion

Pretpostavimo, primjerice, da vam treba broj telefona kupca, ali sjećate se samo da je prezime kupca Berka. Umjesto pregledavanja svih telefonskih brojeva u bazi podataka, možete koristiti uvjet WHERE za ograničavanje rezultata da biste lakše pronašli željeni broj telefona. Uz pretpostavku da su prezimena spremljena u polje naziva Prezime, vaš uvjet WHERE izgledat će ovako:

WHERE [LastName]='Bagel'

Napomena : Ne morate temeljiti kriterij u uvjetu WHERE na jednakosti vrijednosti. Možete koristiti operatore usporedbe, primjerice "veći od" (>) i "manji od" (<). Primjerice, WHERE [Cijena]>100.

Korištenje uvjeta WHERE za spajanje izvora podataka

Ponekad možda želite spojiti izvore podataka utemeljene na poljima u kojima se podaci podudaraju, ali imaju različite vrste podataka. Primjerice, polje u jednoj tablici može imati vrstu podataka Broj koju želite spojiti s poljem u drugoj tablici koja ima vrstu podataka Tekst.

Možete izvršiti spajanje polja različitih vrsta podataka. Da biste spojili podatke iz dva izvora podataka koji se temelje na vrijednostima u poljima, ali su različitih vrsta, stvorite uvjet WHERE koji koristi jedno polje kao kriterij za drugo polje pomoću ključne riječi LIKE.

Pretpostavimo, primjerice, da želite koristiti podatke iz tablice1 i tablice2, ali samo u slučaju kada podaci u polju1 (tekstno polje u tablici1) odgovaraju podacima u polju2 (numeričko polje u tablici2). Vaš uvjet WHERE izgledat će ovako:

WHERE field1 LIKE field2

Dodatne informacije o stvaranju kriterija koji se koriste u uvjetu WHERE potražite u članku Primjeri kriterija upita.

Vrh stranice

Proširite svoje vještine
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×