Ako upiti ne rade dovoljno teško, dodavanje nekih osnovnih SQL može pomoći da usredotočite rezultate. Pogledajmo nekoliko vrsta SQL naredbi i uvjeta ili dijelova koje biste mogli urediti da biste dobili željene rezultate.
Napomena: Ovaj se članak ne odnosi na web-aplikacije programa Access, tj. vrstu baze podataka koju stvarate pomoću programa Access i objavljujete na internetu.
Sadržaj članka
Stvaranje naredbe Odabir
SQL naredba odabira sadrži dva do tri uvjeta. Uvjet SELECT upućuje bazu podataka gdje treba potražiti podatke i traži da vrati određeni rezultat.
Napomena: Naredbe SELECT uvijek završavaju točkom sa zarezom (;) na kraju posljednjeg uvjeta ili na samom retku na kraju SQL naredbe.
Sljedeća naredba odabira traži da Access dohvati podatke iz stupaca Adresa e-pošte i Tvrtka iz tablice Kontakti, posebno u stupcu Grad u kojem se nalazi "Seattle".
Gore navedeni upit sadrži tri uvjeta SELECT, FROM i WHERE.
1. Uvjet SELECT navodi stupce koji sadrže podatke koje želite koristiti i imaju operator (SELECT) i dva identifikatora (adresa e-pošte i tvrtka). Ako identifikator sadrži razmake ili posebne znakove (npr. "Adresa e-pošte"), identifikator stavite unutar uglatih zagrada.
2. Uvjet FROM identificira izvornu tablicu. U ovom primjeru ima operator (FROM) nakon kojeg slijedi identifikator (Kontakti).
3. Uvjet WHERE neobavezni je uvjet. U primjeru je operator (WHERE) nakon kojeg slijedi izraz (Grad="Seattle").
Dodatne informacije o upitima odabiranja potražite u članku Stvaranje jednostavnog upita odabiranja.
Ovo je popis uobičajenih SQL uvjeta:
SQL uvjet |
Funkcija |
Je li to obavezno ? |
SELECT |
Navodi polja koja sadrže podatke koji su zanimljivi. |
Da |
FROM |
Navodi tablice koje sadrže polja navedena u uvjetu SELECT. |
Da |
WHERE |
Određuje kriterije polja koje mora ispunjavati svaki zapis koji će biti uvršten u rezultate. |
Ne |
POREDAJ PO |
Određuje kako sortirati rezultate. |
Ne |
GROUP BY |
U SQL naredbi koja sadrži agregacijske funkcije navodi polja koja nisu sažeta u uvjetu SELECT. |
Samo ako postoje takva polja |
HAVING |
U SQL naredbi koja sadrži agregacijske funkcije određuje uvjete koji se primjenjuju na polja sažeta u naredbi SELECT. |
Ne |
Svaki SQL uvjet sastoji se od termina. Ovdje je popis nekih uobičajenih SQL termina.
SQL termin |
Definicija |
Primjer |
Identifikator |
Naziv koji koristite za identifikaciju 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, npr. broj ili NULL. |
42 |
izraz |
Kombinacija identifikatora, operatora, konstanti i funkcija koje se vrednuju kao jedna vrijednost. |
>= Proizvodi. [Jedinična cijena] |
Prilagodba uvjeta SELECT
Prilagodba |
Primjer |
Da biste vidjeli samo različite vrijednosti. Upotrijebite ključnu riječ DISTINCT u uvjetu SELECT. |
Ako su, primjerice, vaši klijenti iz nekoliko različitih podružnica, a neki imaju isti telefonski broj, a želite da se telefonski broj prikazuje samo jedanput, vaš bi uvjet SELECT bio ovako:
|
Da biste promijenili način prikaza identifikatora u prikazu podatkovne tablice da biste poboljšali čitljivost. Koristite operator AS (ključnu riječ koja predstavlja akciju ili mijenja akciju) s pseudonimom polja u uvjetu SELECT. Pseudonim polja naziv je koji dodjeljujete polju radi lakšeg čitanja rezultata. |
|
Prilagodba uvjeta FROM
Prilagodba |
Primjer |
U naredbi odabira možete koristiti pseudonim tablice ili neki drugi naziv koji dodijelite tablici. Pseudonim tablice koristan je ako je naziv tablice dugačak, osobito ako imate više polja koja imaju isti naziv iz različitih tablica. |
Da biste odabrali podatke iz dva polja, oba naziva ID, od kojih jedno dolazi iz tablice tblCustomer, a drugo iz tablice tblOrder:
Pomoću operatora AS definirajte pseudonime tablice u uvjetu FROM:
Zatim u uvjetu SELECT možete koristiti sljedeće pseudonime tablice:
|
Spajanje koristite za kombiniranje parova zapisa iz dvaju izvora podataka u jedan rezultat ili za određivanje treba li uvrstiti zapise iz bilo koje tablice ako u povezanoj tablici nema odgovarajućeg zapisa. Pridružite tablice tako da upit kombinira stavke iz tablica i isključuje stavke kada u drugoj tablici nema odgovarajućeg zapisa |
Evo kako bi uvjet FROM mogao izgledati:
|
Korištenje spoja
Postoje dvije vrste spoja, unutarnjih i vanjskih spoja. Unutrašnji spoj je uobičajeniji u upitima. Kada pokrenete upit s unutarnjim spojem, rezultat prikazuje samo one stavke u kojima zajednička vrijednost postoji u obje spojene tablice.
Vanjski spojovi određuju treba li uvrstiti podatke u kojima ne postoji zajednička vrijednost. Vanjski spojovi usmjereni su, što znači da možete odrediti želite li uvrstiti sve zapise iz prve tablice navedene u spoju (zove se lijevi spoj) ili da u spoj uvrstite sve zapise iz druge tablice (koji se zove desni spoj). Vanjski spoj sadrži sljedeću SQL sintaksu:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
Dodatne informacije o korištenju spoja u upitu potražite u članku Spajanje tablica i upita.
Prilagodba uvjeta WHERE
Uvjet WHERE sadrži kriterije koji olakšavaju ograničavanje broja stavki vraćenih u upitu. Pogledajte primjere kriterija upita i načina na koji funkcioniraju.
Primjer prilagodbe osnovnog uvjeta WHERE jest ograničavanje rezultata upita; Pretpostavimo da želite pronaći telefonski broj klijenta i možete samo zapamtiti njegovo prezime kao Bagel. U ovom se primjeru prezimena pohranjuju u polje Prezime, pa bi SQL sintaksa bila:
WHERE [LastName]='Bagel'
Uvjet WHERE koristite i za kombiniranje izvora podataka za stupce koji sadrže podudarne podatke, ali različite vrste podataka. To je korisno jer ne možete stvoriti spoj između polja koja imaju različite vrste podataka. Koristite jedno polje kao kriterij za drugo polje s ključnom riječi LIKE . Ako, primjerice, želite koristiti podatke iz tablice Imovina i Zaposlenici, samo kada vrsta imovine u polju vrsta imovine u tablici Resursi sadrži broj 3 u polju Količina u tablici Zaposlenici, evo kako bi vaš uvjet WHERE izgledao:
WHERE field1 LIKE field2
Važno: U uvjetu WHERE ne možete navesti kriterije za polje koje se koristi s funkcijom zbrajanja. Umjesto toga, upotrijebite uvjet HAVING da biste naveli kriterij za agregatna polja.
Prilagodba pomoću operatora UNION
Operator UNION koristite kada želite vidjeti kombinirani prikaz rezultata iz nekoliko sličnih upita odabiranja. Ako, primjerice, baza podataka sadrži tablicu Proizvodi i servise, a obje imaju tri polja: ekskluzivnu ponudu ili proizvod ili uslugu, cijenu, jamstvo ili jamstvo. Iako tablica Proizvodi pohranjuje informacije o jamstvu, a u tablici Servisi pohranjuju se podaci o jamstvu, osnovne informacije su iste. Upit s unijom možete koristiti za kombiniranje triju polja iz dviju tablica 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 kombiniraju se u jedno izlazno polje. Da biste u rezultate uvrstili duplicirane retke, koristite operator ALL.
Napomena: Naredba Select mora imati isti broj izlaznih polja, istog redoslijeda i s istim ili kompatibilnim vrstama podataka. Za potrebe upita s unijom vrste podataka Broj i Tekst kompatibilne su.
Dodatne informacije o upitima s unijom potražite u članku Prikaz objedinjenog rezultata iz više upita pomoću upita s unijom.