Uređivanje SQL izraza radi izoštravanja rezultata upita

Primjenjuje se na
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ako se upiti ne trude dovoljno, dodavanje nekih osnovnih SQL naredbi može pridonijeti fokusiranju rezultata. Pogledajmo nekoliko vrsta SQL naredbi i uvjeta ili dijelova koje možete urediti da biste dobili željene rezultate.

Sadržaj članka

Stvaranje naredbe Select

SQL naredba select sadrži dva do tri uvjeta. Uvjet SELECT govori bazi podataka gdje treba tražiti podatke i traži od nje da vrati određeni rezultat.

Napomena

Naredbe SELECT uvijek završavaju točkom sa zarezom (;) na kraju zadnje naredbe ili u zasebnom retku na kraju SQL naredbe.

Sljedeća naredba select traži da Access dohvati podatke iz stupaca Adresa e-pošte i Tvrtka, iz tablice Kontakti, konkretno iz mjesta na kojem u stupcu Grad pronađe "Sisak".

Tablica SQL objekata koja prikazuje naredbu SELECT

Gornji upit sadrži tri uvjeta: SELECT, FROM i WHERE.

1. Uvjet SELECT navodi stupce koji sadrže podatke koje želite koristiti i ima operator (SELECT) nakon kojeg slijede dva identifikatora (Adresa e-pošte i Tvrtka). Ako identifikator sadrži razmake ili posebne znakove (primjerice, "Adresa e-pošte"), identifikator stavite u uglate zagrade.

2. Uvjet FROM identificira izvornu tablicu. U ovom primjeru sadrži operator (FROM) nakon kojeg slijedi identifikator (Contacts).

3. Uvjet WHERE neobavezni je uvjet. Primjer sadrži operator (WHERE) iza kojeg slijedi izraz (Grad="Sisak").

Dodatne informacije o upitima odabiranja potražite u članku Stvaranje jednostavnog upita odabiranja.

Evo popisa uobičajenih SQL uvjeta:

SQL uvjet Funkcija Obavezno?
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
POREDAJ PO 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

Svaka se SQL naredba sastoji od izraza. Evo popisa nekih uobičajenih SQL pojmova.

SQL izraz Definicija Primjer
identifikator Naziv koji se koristi za prepoznavanje objekta baze podataka, kao što je naziv stupca. [Adresa e-pošte] i Tvrtka
operator Ključna riječ koja predstavlja akciju ili mijenja akciju. AS
konstanta Vrijednost koja se ne mijenja, primjerice broj ili NULL. 42
izraz Kombinacija identifikatora, operatora, konstanti i funkcija koje se svode na jednu vrijednost. >= Proizvodi. [Jedinična cijena]

Vrh stranice

Prilagodba uvjeta SELECT

Prilagodba Primjer
Da bi se prikazale samo jedinstvene vrijednosti.
U uvjetu SELECT koristite ključnu riječ DISTINCT.
Na primjer, ako su vaši klijenti iz nekoliko različitih podružnica i neki imaju isti broj telefona, a vi želite da se jedan broj na popisu prikazuje samo jedanput, vaš uvjet SELECT izgledat će ovako:SELECT DISTINCT [txtCustomerPhone]
Promjena načina na koji se identifikator prikazuje u prikazu podatkovne tablice radi bolje čitljivosti.
Upotrijebite operator AS (ključna riječ koja predstavlja akciju ili mijenja akciju) s pseudonimom polja u uvjetu SELECT. Pseudonim polja jest naziv koji dodjeljujete polju da biste pojednostavnili čitanje rezultata.
SELECT [txtCustPhone] AS [Telefon klijenta]

Prilagodba uvjeta FROM

Prilagodba Primjer
Možete koristiti pseudonim tablice ili neki drugi naziv koji dodjeljujete tablici u naredbi SELECT. Pseudonim tablice koristan je ako je naziv tablice dug, osobito kada imate više polja iz različitih tablica koja imaju isti naziv. Da biste odabrali podatke iz dva polja, oba s nazivom ID, pri čemu jedno od njih dolazi iz tablice tblKupac, a drugo iz tablice tblNarudžba:
ODABERITE [tblKupac]. [ID],
[tblOrder]. [ID]
Operator AS koristite za definiranje pseudonima tablice u uvjetu FROM:
FROM [tblKupac] AS [C],
[tblOrder] AS [O]
Te pseudonime tablice možete koristiti u uvjetu SELECT kako slijedi:SELECT [C]. [ID],
[O]. [ID]
Spojeve koristite za kombiniranje parova zapisa iz dva izvora podataka u jedan rezultat ili za određivanje treba li obuhvatiti zapise iz jedne tablice ako nema odgovarajućih zapisa u povezanoj tablici.
Spajanje tablica tako da se u upitu spajaju stavke iz tablica te da se isključuju stavke koje se ne poklapaju s drugim zapisima
Evo kako uvjet FROM može izgledati:FROM [tblKupac]
INNER JOIN [tblOrder]
ON [tblCustomer]. [IDKlijenta]=[tblNarudžba]. [IDKlijenta]

O korištenju spojeva

Postoje dvije vrste spajanja, unutarnji i vanjski spojevi. Unutarnji spojevi češće se pojavljuju u upitima. Kada pokrenete upit s unutarnjim spojem, rezultat prikazuje samo one stavke za koje postoji zajednička vrijednost u obje spojene tablice.

Vanjski spojevi određuju treba li uvrstiti podatke za koje ne postoje zajedničke vrijednosti. Vanjska su pridruživanja usmjeravajuća, što znači da možete navesti želite li uvrstiti sve zapise iz prve tablice navedene u pridruživanju (nazvane i lijevo pridruživanje) ili sve zapise iz druge tablice u pridruživanju (tzv. desnog spoja). Vanjski spoj ima sljedeću SQL sintaksu:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

Dodatne informacije o korištenju spojeva u upitima potražite u članku Spajanje tablica i upita.

Vrh stranice

Prilagodba uvjeta WHERE

Uvjet WHERE sadrži kriterije koji ograničavaju broj stavki koje vraća upit. Pogledajte primjere kriterija upita i njihovo funkcioniranje.

Primjer prilagodbe osnovnog uvjeta WHERE jest ograničavanje rezultata upita; Pretpostavimo da želite pronaći broj telefona kupca, a možete zapamtiti samo prezime kao Berku. U ovom su primjeru prezimena pohranjena u polju Prezime, pa bi SQL sintaksa bila sljedeća:

WHERE [LastName]='Bagel'

Uvjet WHERE koristite i za kombiniranje izvora podataka za stupce u kojima se podaci podudaraju, ali različite vrste podataka. To je vrlo korisno jer ne možete stvoriti spoj između polja različitih vrsta podataka. Jedno polje koristite kao kriterij za drugo polje uz ključnu riječ LIKE . Ako, primjerice, želite koristiti podatke iz tablica Imovina i tablice Zaposlenici, samo kada vrsta imovine u polju Vrsta imovine u tablici Imovina ima broj 3 u polju Količina tablice Zaposlenici, ovako bi trebao izgledati uvjet WHERE:

WHERE field1 LIKE field2

Važno

Ne možete navesti kriterije za polje koje se koristi s agregatnom funkcijom u uvjetu WHERE. Umjesto toga, upotrijebite uvjet HAVING da biste naveli kriterij za agregatna polja.

Vrh stranice

Prilagodba pomoću operatora UNION

Operator UNION koristite kada želite vidjeti kombinirani prikaz rezultata nekoliko sličnih upita odabiranja. Primjerice, ako baza podataka sadrži tablice Proizvodi i Usluge, a obje imaju tri polja: isključiva ponuda ili proizvod ili usluga, cijena, jamstvo ili jamstvo. Iako su u tablici Proizvodi spremljeni podaci o jamstvu, a u tablici Usluge informacije o garanciji, osnovne su informacije iste. Pomoću upita s unijom možete tri polja iz dviju tablica kombinirati ovako:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer 
FROM Services;

Kada pokrenete upit, podaci iz svakog skupa odgovarajućih polja spajaju se u jedno izlazno polje. Da biste u rezultate uključili duplicirane retke, upotrijebite operator ALL.

Napomena

Naredba Select mora imati jednak broj izlaznih polja, u istom poretku i s istim ili kompatibilnim vrstama podataka. Za potrebe upita s unijom, vrste podataka Broj i Tekst smatraju se kompatibilnima.

Dodatne informacije o upitima s unijom potražite u članku korištenje upita s unijom za pregled objedinjenih rezultata iz većeg broja upita.

Vrh stranice