Ovo je jedan iz niza članaka o jeziku Access SQL. U ovom se članku opisuje kako napisati uvjet SELECT te se koriste primjeri za ilustraciju raznih tehnika koje se mogu koristiti pri njezinu pisanju.
Ako vas zanima pregled jezika Access SQL, pročitajte članak Access SQL: osnovni koncepti, vokabular i sintaksa.
U ovom članku
Odabir polja: uvjet SELECT
Naredba SELECT obično počinje uvjetom SELECT. Uvjet SELECT koristite za određivanje naziva polja koja sadrže podatke koje želite koristiti u upitu. Izraze možete koristiti i umjesto polja ili uz njih. Možete čak koristiti i drugu naredbu SELECT kao polje – to se naziva podupit.
Pretpostavimo da želite znati telefonske brojeve svojih klijenata. Uz pretpostavku da se polje u koje se pohranjuju telefonski brojevi klijenata zove txtCusPhone, uvjet SELECT izgledat će ovako:
SELECT [txtCustomerPhone]
Naziv možete obuhvatiti uglatim zagradama. Ako naziv ne sadrži razmake ni posebne znakove (kao što su interpunkcijske znakove), uglate zagrade nisu obavezne. Ako naziv sadrži razmake ili posebne znakove, morate koristiti zagrade.
Savjet: Naziv koji sadrži razmake lakše se čita i može vam uštedjeti vrijeme prilikom dizajniranja obrazaca i izvješća, ali s druge strane možete zbog njega više tipkati prilikom pisanja SQL izjava. To biste trebali imati na umu kad imenujete objekte u bazi podataka aplikacije Access.
Ako vam SQL naredba sadrži dva ili više polja koja imaju isti naziv, morate dodati naziv podatkovnog izvora svakog polja u naziv polja u uvjetu SELECT. Za podatkovni izvor upotrijebite isti naziv koji koristite u uvjetu FROM.
Odabir svih polja
Kada želite uvrstiti sva polja iz podatkovnog izvora, možete navesti ili sva polja pojedinačno u uvjetu SELECT ili se možete poslužiti zamjenskim znakom zvjezdice (*). Kada upotrijebite zvjezdicu, Access pri pokretanju upita određuje koja polja sadrži podatkovni izvor i uvrštava sva ta polja u upit. Time se jamči ažurnost upita u slučaju dodavanja novih polja u podatkovni izvor.
U SQL naredbi zvjezdicu možete upotrijebiti s jednim podatkovnim izvorom ili s više njih. Ako koristite zvjezdicu, a postoji više podatkovnih izvora, morate navesti naziv podatkovnog izvora uz zvjezdicu zato da Access može odrediti iz kojeg podatkovnog izvora treba uvrstiti sva polja.
Recimo da želite odabrati sva polja iz tablice Narudžbe, ali samo adrese e-pošte iz tablice Kontakti. Vaš bi uvjet SELECT trebao izgledati ovako:
SELECT Orders.*, Contacts.[E-mail Address]
Napomena: Pratite slučajeve u kojima koristite zvjezdicu. Ako se poslije dodaju nova polja u podatkovni izvor, a niste ih planirali, rezultati vašeg upita mogli bi ispasti drugačiji nego što želite.
Odabir pojedinačnih vrijednosti
Ako znate da će vam naredba odabrati redundantne podatke, a htjeli biste samo pojedinačne vrijednosti, možete upotrijebiti ključnu riječ DISTINCT u uvjetu SELECT. Recimo da svaki vaš klijent predstavlja nekoliko različitih interesa, ali neki od njih koriste isti broj telefona. Ako želite da vam se svaki broj telefona prikazuje samo jedanput, uvjet SELECT morala bi vam izgledati ovako:
SELECT DISTINCT [txtCustomerPhone]
Upotreba zamjenskih naziva za polja ili izraze: ključna riječ AS
Možete promijeniti oznaku koja se prikazuje za bilo koje polje u prikazu podatkovne tablice pomoću ključne riječi AS i pseudonim za polje u sklopu uvjeta SELECT. Pseudonim za polje jest naziv koji dodijelite polju u upitu radi toga da bi se rezultati lakše čitali. Ako, primjerice, želite odabrati podatke iz polja koje se zove txtCustPhone i polje sadrži telefonske brojeve klijenata, čitljivost rezultata možete poboljšati ako upotrijebite pseudonim polja u naredbi SELECT na sljedeći način:
SELECT [txtCustPhone] AS [Customer Phone]
Napomena: Pseudonim polja morate koristiti kada koristite izraz u uvjetu SELECT.
Odabir pomoću izraza
Postoje slučajevi u kojima želite pogledati izračune na temelju podataka ili želite dohvatiti samo dio podataka iz polja. Pretpostavimo, na primjer, da želite da vam se vrati godina kada su klijenti rođeni, i to na temelju podataka u polju BirthDate u bazi podataka. Vaš bi uvjet SELECT trebao izgledati ovako:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Izraz se sastoji od funkcije DatePart i dva argumenta — "gggg" (konstanta) i [DatumRođenja] (identifikator).
Valjani izraz možete koristiti kao polje ako se izrazom vraća jedna vrijednost kada mu se daje jedna ulazna vrijednost.