Uređivanje SQL instrukcija da bi se dobili precizniji rezultati upita
Applies ToAccess za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ako upiti ne rade dovoljno, dodavanje nekih osnovnih SQL može da vam pomogne da se fokusirate na rezultate. Hajde da pogledamo nekoliko tipova SQL izraza i odredbe ili delove koje možete da uredite da biste dobili željene rezultate.

Napomena:  Ovaj članak se ne odnosi na Access veb aplikacije – to jest, na vrstu baze podataka koju dizajnirate pomoću programa Access i objavljujete na mreži.

U ovom članku

Kreiranje izraza "Select"

Izraz SQL select ima dve do tri odredbe. Odredba SELECT govori bazi podataka gde da traži podatke i traži od njega da vrati određeni rezultat.

Napomena:  Select izrazi se uvek završavaju tačkom i zarezom (;) na kraju poslednje odredbe ili na samom redu na kraju SQL izraza.

Sledeća izjava o izboru traži od programa Access da preuzme informacije iz kolona E-adresa i Preduzeće iz tabele "Kontakti", tačnije od mesta na kojem pronalaze reč "Sijetl" u koloni "Grad".

Kartica SQL objekta prikazuje instrukciju SELECT

Gorenavedeni upit ima tri odredbe SELECT, FROM i WHERE.

1. Odredba SELECT navodi kolone koje sadrže podatke koje želite da koristite i ima operator (SELECT) iza kojeg slede dva identifikatora (E-adresa i preduzeće). Ako identifikator ima razmake ili specijalne znakove (kao što je "Adresa e-pošte"), stavite identifikator u uglaste zagrade.

2. Odredba FROM identifikuje izvornu tabelu. U ovom primeru, on ima operator (FROM) iza kojeg sledi identifikator (Kontakti).

3. Odredba WHERE je opcionalna odredba. Primer ima operator (WHERE) iza kojeg sledi izraz (Grad="Sijetl").

Dodatne informacije o upitima za izdvajanje potražite u članku Kreiranje jednostavnog upita za izdvajanje.

Evo liste uobičajenih SQL odredbi:

SQL odredba

Šta radi

Obavezno ?

SELECT

Navodi polja koja sadrže podatke koji vas interesuju.

Da

FROM

Navodi tabele koje sadrže polja navedena u odredbi SELECT.

Da

WHERE

Navodi kriterijume polja koje svaki zapis mora da ispuni da bi bio uključen u rezultate.

Ne

NARUČI PO

Navodi kako da sortirate rezultate.

Ne

GROUP BY

U SQL izrazu koji sadrži agregatne funkcije navodi polja koja nisu rezimirana u odredbi SELECT.

Samo ako postoje takva polja

HAVING

U SQL izrazu koji sadrži agregatne funkcije navodi uslove koji se primenjuju na polja koja su rezimirani u izrazu SELECT.

Ne

Svaka SQL odredba se sastoji od termina. Evo liste nekih uobičajenih SQL termina.

SQL termin

Definicija

Primer

Identifikator

Ime koje koristite za identifikovanje objekta baze podataka, kao što je ime kolone.

[E-adresa] i preduzeće

operator

Ključna reč koja predstavlja radnju ili menja radnju.

AS

konstanta

Vrednost koja se ne menja, kao što je broj ili NULL.

42

izraz

Kombinacija identifikatora, operatora, konstanti i funkcija koje kao rezultat daju jednu vrednost.

>= Proizvodi. [Cena po jedinici]

Vrh stranice

Prilagođavanje odredbe SELECT

Prilagodi

Primer

Da biste videli samo različite vrednosti.

Koristite ključnu reč DISTINCT u odredbi SELECT.

Na primer, ako su klijenti iz nekoliko različitih poslovnica, a neki imaju isti broj telefona, a želite da vidite samo jedan broj telefona naveden jednom, odredba SELECT bi bila sledeća:

SELECT DISTINCT [txtCustomerPhone] 

Da biste promenili način na koji se identifikator pojavljuje u prikazu lista sa podacima radi poboljšanja čitljivosti.

Koristite operator AS (ključnu reč koja predstavlja radnju ili menja radnju) sa pseudonimom polja u odredbi SELECT. Pseudonim polja je ime koje dodeljujete polju da bi rezultati bili lakši za čitanje.

SELECT [txtCustPhone] AS [Customer Phone]

Prilagođavanje odredbe FROM

Prilagodi

Primer

Možete da koristite pseudonim tabele ili drugo ime koje dodeljujete tabeli u izrazu za izbor. Pseudonim tabele je koristan ako je ime imena tabele dugo, naročito kada imate više polja sa istim imenom iz različitih tabela.

Da biste izabrali podatke iz dva polja, oba pod imenom ID, od kojih jedno potiče iz tabele tblKup, a drugo iz tabele tblPoruđivanje:

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

Koristite operator AS da biste definisali pseudonime tabele u odredbi FROM:

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

Zatim možete da koristite ove pseudonime tabele u odredbi SELECT na sledeći način:

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

Koristite spajanja da biste kombinovali parove zapisa iz dva izvora podataka u jedan rezultat ili da biste naveli da li treba uključiti zapise iz obe tabele ako nema odgovarajućeg zapisa u povezanoj tabeli.

Spojite tabele tako da upit kombinuje stavke iz tabela i isključuje stavke kada nema odgovarajućeg zapisa u drugoj tabeli

Evo kako bi odredba FROM mogla da izgleda:

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

Osnovni podaci o korišćenju spajanja

Postoje dva tipa spajanja, unutrašnja i spoljna. Unutrašnja spajanja su česta u upitima. Kada pokrenete upit sa unutrašnjim spajanje, rezultat prikazuje samo stavke u kojima zajednička vrednost postoji u obe spojene tabele.

Spoljna spajanja navode da li treba uključiti podatke u kojima zajednička vrednost ne postoji. Spoljna spajanja su smerna, što znači da možete da navedete da li želite da uključite sve zapise iz prve tabele navedene u spoju (naziva se levo spajanje) ili da uključite sve zapise iz druge tabele u spajanje (naziva se desno spajanje). Spoljno spajanje ima sledeću SQL sintaksu:

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

Više informacija o korišćenju spajanja u upitu potražite u članku Spajanje tabela i upita.

Vrh stranice

Prilagođavanje odredbe WHERE

Odredba WHERE sadrži kriterijume koji vam pomažu da ograničite broj stavki vraćenih u upit. Pogledajte primere kriterijuma upita i kako oni rade.

Primer kako možete da prilagodite osnovnu odredbu WHERE jeste da ograničite rezultate upita; Pretpostavimo da želite da pronađete broj telefona klijenta i da se samo njegovo prezime zove Bagel. U ovom primeru, prezimena se skladište u polju "Prezime", tako da bi SQL sintaksa bila:

WHERE [LastName]='Bagel'

Koristite odredbu WHERE i da biste kombinovali izvore podataka za kolone koje imaju podatke koji se podudaraju, ali različite tipove podataka. Ovo je korisno jer ne možete da kreirate spoj između polja koja sadrže različite tipove podataka. Koristite jedno polje kao kriterijum za drugo polje, sa ključnom rečju LIKE . Na primer, ako želite da koristite podatke iz tabele "Imovina" i "Zaposleni", samo kada tip sredstva u polju "Tip imovine" u tabeli "Imovina" ima broj 3 u polju "Količina" u tabeli "Zaposleni", evo kako bi izgledala odredba WHERE:

WHERE field1 LIKE field2

Važno:  Nije moguće navesti kriterijume za polje koje se koristi sa agregatnim funkcijom u odredbi WHERE. Umesto toga, možete da koristite odredbu HAVING da biste naveli kriterijume za ukupna polja.

Vrh stranice

Prilagođavanje pomoću operatora UNION

Koristite operator UNION kada želite da vidite kombinovani prikaz rezultata iz nekoliko sličnih upita za izdvajanje. Na primer, ako baza podataka ima tabele "Proizvodi" i "Usluge" i oboje imaju tri polja: ekskluzivnu ponudu ili proizvod ili uslugu, cenu, garanciju ili garanciju. Iako tabela "Proizvodi" skladišti informacije o garanciji, a tabela "Usluge" skladišti informacije o garanciji, osnovne informacije su iste. Upit za združivanje možete da koristite da biste kombinovali tri polja iz dve tabele na sledeći način:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Kada pokrenete upit, podaci iz svakog skupa odgovarajućih polja kombinuju se u jedno izlazno polje. Da biste uključili duplirane redove u rezultate, koristite operator ALL.

Napomena:  Izraz Select mora da ima isti broj izlaznih polja, istim redosledom i sa istim ili kompatibilnim tipovima podataka. U svrhe upita za združivanje tipovi podataka "Broj" i "Tekst" su kompatibilni.

Više informacija o upitima za združivanje potražite u članku Korišćenje upita za združivanje za prikaz objedinjenog rezultata iz više upita.

Vrh stranice

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na pitanja, dajete povratne informacije i čujete mišljenje od stručnjaka sa bogatim znanjem.