Access SQL: osnovni koncepti, rečnik i sintaksa

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

Kada želite da preuzmete podatke iz baze podataka, možete zatražiti podatke koristeći Structured Query Language ili SQL. SQL je računarski jezik koji je sličan engleskom, ali ga programi baze podataka razumeju. Svaki upit koji pokrenete koristi SQL u pozadini.

Razumevanje funkcionisanja jezika SQL može vam pomoći da kreirate bolje upite i može vam olakšati razumevanje kako da popravite upit koji ne vraća željene rezultate.

Ovo je jedan od skupova članaka o usluzi Access SQL. Ovaj članak opisuje osnovnu upotrebu SQL-a za izbor podataka i koristi primere za ilustrovanje SQL sintakse.

U ovom članku

Šta je to SQL?

SQL je računarski jezik za rad sa skupovima činjenica i relacijama između njih. Programi relacionih baza podataka, kao što je Microsoft Office Access, koriste SQL za rad sa podacima. Za razliku od mnogih računarskih jezika, SQL nije teško čitati i razumeti, čak ni za početnike. Poput mnogih računarskih jezika, SQL je međunarodni standard koji prepoznaju tela za standarde kao što su ISO i ANSI.

Možete da koristite SQL da biste opisali skupove podataka koji vam mogu pomoći da odgovorite na pitanja. Kada koristite SQL, morate da koristite ispravnu sintaksu. Sintaksa je skup pravila po kojima se elementi jezika ispravno kombinuju. SQL sintaksa je zasnovana na engleskoj sintaksi i koristi veliki broj istih elemenata kao što je Visual Basic for Applications (VBA) sintaksa.

Na primer, jednostavan SQL izraz koji preuzima listu prezimena kontakata čije je ime Biljana može da izgleda ovako:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Napomena

SQL se ne koristi samo za upravljanje podacima, već i za kreiranje i promene dizajna objekata baze podataka, kao što su tabele. Deo SQL jezika koji se koristi za kreiranje i menjanje objekata baze podataka naziva se jezikom za definisanje podataka (DDL). Ova tema ne pokriva DDL. Više informacija potražite u članku Kreiranje ili izmena tabela ili indeksa pomoću upita za definisanje podataka.

SELECT izrazi

Da biste opisali skup podataka koristeći SQL, možete da napišete SELECT izraz. SELECT izraz sadrži potpun opis za skup podataka koji želite da dobijete iz baze podataka. Ovo uključuje sledeće:

  • Tabele koje sadrže podatke.
  • Kako su povezani podaci iz različitih izvora.
  • Koja polja ili izračunavanja će dati podatke.
  • Kriterijumi koji podaci moraju da ispunjavaju kako bi bili uključeni.
  • Da li se rezultati sortiraju i na koji način.

SQL odredbe

Kao i rečenica, SQL izraz ima odredbe. Svaka odredba izvršava funkciju za SQL izraz. Neke odredbe su neophodne u SELECT izrazu. Sledeća tabela navodi najčešće SQL odredbe.

SQL odredba Šta radi Obavezno
SELECT Popisuje polja sa podacima koji se traže. Da
FROM Popisuje tabele koje sadrže polja popisana u odredbi SELECT. Da
WHERE Navodi kriterijume polja koje zapisi moraju da ispune da bi bili uključeni u rezultate. Ne
ORDER BY Zadaje način sortiranja rezultata. Ne
GROUP BY U SQL izrazu koji sadrži agregatne funkcije, popisuje polja koja nisu rezimirana u instrukciji SELECT. Samo ako postoje takva polja.
HAVING U SQL instrukciji koja sadrži agregatne funkcije, navodi uslove koji se primenjuju na polja rezimirana u instrukciji SELECT. Ne

SQL termini

Svaka SQL odredba se sastoji od uslova – što se može uporediti sa delovima govora. Sledeća tabela navodi tipove SQL termina.

SQL termin Usklađeni deo govora Definicija Primer:
identifikator imenica Ime koje koristite za identifikovanje objekta baze podataka, kao što je ime polja. Kupci. [broj telefona]
operator glagol ili prilog Ključna reč koja predstavlja radnju ili menja radnju. AS
konstanta imenica Vrednost koja se ne menja, kao što je broj ili NULL. 42
izraz pridev Kombinacija identifikatora, operatora, konstanti i funkcija koja daje jednu vrednost. >= Proizvodi. [Cena po jedinici]

Vrh stranice

Osnovne SQL odredbe: SELECT, FROM i WHERE

SQL izraz uzima opšti obrazac:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Napomena

  • Access zanemaruje prelome redova u SQL izrazu. Međutim, razmislite o korišćenju reda za svaku odredbu da biste poboljšali čitljivost SQL izraza za sebe i druge.
  • Svaki SELECT izraz uvek se završava tačkom i zarezom (;). Tačka i zarez mogu da se pojave na kraju zadnje odredbe ili u posebnom redu na kraju SQL izraza.

Primer u programu Access

Sledeće ilustruje kako može da izgleda SQL izraz za jednostavan SELECT upit u programu Access:

Kartica SQL objekta prikazuje instrukciju SELECT

1. Odredba SELECT

2. Odredba FROM

3. odrednica WHERE

Ovaj primer SQL izraza glasi: "Izaberite podatke koji se skladište u poljima pod imenom "Adresa e-pošte" i "Preduzeće" iz tabele pod imenom "Kontakti", tačnije one zapise u kojima je vrednost polja "Grad" – Subotica".

Hajde da pogledamo primer, jedna po jedna odredba, da bismo videli kako funkcioniše SQL sintaksa.

Odredba SELECT

SELECT [E-mail Address], Company

Ovo je SELECT odredba. Sastoji se od operatora (SELECT) iza kojeg slede dva identifikatora ([adresa e-pošte] i preduzeće).

Ako identifikator sadrži razmake ili specijalne znakove (kao što je "adresa e-pošte"), moraju se nalaziti u uglastim zagradama.

Odredba SELECT ne mora da saopšti koje tabele sadrže polja i ne može da navede nijedan uslov koji podaci moraju ispunjvati da bi bili uključeni.

Odredba SELECT se uvek pojavljuje ispred odredbe FROM u SELECT izrazu.

Odredba FROM

FROM Contacts

Ovo je odredba FROM. Sastoji se od operatora (FROM) iza kojeg sledi identifikator (Kontakti).

Odredba FROM ne navodi listu polja za izbor.

Odredba WHERE

WHERE City="Seattle"

Ovo je odredba WHERE. Sastoji se od operatora (WHERE) iza kog sledi izraz (Grad = "Subotica").

Napomena

Za razliku od odredbi SELECT i FROM, odredba WHERE nije neophodan element odredbe SELECT.

Možete da izvršite mnoge radnje koje vam SQL omogućava da uradite pomoću odredbi SELECT, FROM i WHERE. Više informacija o tome kako koristite ove odredbe nalazi se u ovim dodatnim člancima:

Vrh stranice

Sortiranje rezultata: ORDER BY

Kao i Microsoft Excel, Access vam omogućava da sortirate rezultate upita u listu sa podacima. U upiti možete da navedete kako želite da sortirate rezultate kada se upit pokrene, koristeći odredbu ORDER BY. Ako koristite odredbu ORDER BY, to je zadnja odredba u SQL izrazu.

Odredba ORDER BY sadrži listu polja koja želite da koristite za sortiranje, u istom redosledu koji želite da primenite operacije sortiranja.

Na primer, pretpostavimo da želite da rezultati budu sortirani po vrednosti polja "Preduzeće" opadajućim redosledom i – ako postoje zapisi sa istom vrednošću za "Preduzeće" – sortirani po vrednostima u polju "Adresa e-pošte" rastućim redosledom. Idredba ORDER BY bi izgledala na sledeći način:

ORDER BY Company DESC, [E-mail Address]

Napomena

Access podrazumevano sortira vrednosti po rastućem redosledu (A-Z, od najmanjeg ka najvećem). Koristite DESC ključnu reč da biste sortirali vrednosti opadajućim redosledom.

Više informacija o odredbi ORDER BY potražite u temi Odredba ORDER BY.

Vrh stranice

Rad sa rezimiranim podacima: GROUP BY i HAVING

Ponekad želite da radite sa rezimiranim podacima, kao što je ukupna prodaja u mesecu ili najskuplji artikli na zalihama. Da biste to uradili, primenite agregatnu funkciju na polje u odredbi SELECT. Na primer, ako želite da upit prikaže broj adresa e-pošte navedenih za svako preduzeće, odredba SELECT može izgledati na sledeći način:

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

Agregatne funkcije koje možete da koristite zavise od tipa podataka koji je u polju ili izraza koji želite da koristite. Više informacija o dostupnim agregatnim funkcijama potražite u članku SQL agregatne funkcije.

Navođenje polja koja nisu korišćena u agregatnoj funkciji: Odredba GROUP BY

Kada koristite agregatne funkcije, obično morate da kreirate i odredbu GROUP BY. GROUP BY odredba navodi sva polja na koje se ne primenjuju agregatne funkcije. Ako primenite agregatne funkcije na sva polja u upitu, ne morate da kreirate odredbu GROUP BY.

Odredba GROUP BY sledi neposredno odredbu WHERE ili FROM ako ne postoji odredba WHERE. Odredba GROUP BY navodi polja onako kako se pojavljuju u odredbi SELECT.

Na primer, nastavljajući prethodni primer, ako odredba SELECT primenjuje agregatnu funkciju na [adresa e-pošte] ali ne i na preduzeće, odredba GROUP BY bi trebalo ovako da izgleda:

GROUP BY Company

Više informacija o odredbi GROUP BY potražite u temi Odredba GROUP BY.

Ograničavanje agregatnih vrednosti koristeći kriterijume grupe: odredba HAVING

Ako želite da koristite kriterijume da biste ograničili rezultate, ali se polje na koje želite da primenite kriterijume koristi u agregatnoj funkciji, ne možete da koristite odredbu WHERE. Umesto toga koristite odredbu HAVING. Odredba HAVING funkcioniše kao odredba WHERE, ali se koristi za agregirane podatke.

Na primer, pretpostavimo da koristite funkciju AVG (koji se izračunava prosečnu vrednost) sa na prvo polje u odredbi SELECT:

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

Ako želite da upit ograniči rezultate na osnovu vrednosti funkcije COUNT, ne možete da koristite kriterijume za to polje u odredbi WHERE. Umesto toga, stavite kriterijume u odredbu HAVING. Na primer, ako samo želite da upit vraća redove ako postoji više adresa e -pošte koje su povezane sa tim preduzećem, odredba HAVING može izgledati ovako:

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

Napomena

Upit može da ima odredbu WHERE i odredbu HAVING – kriterijumi za polja koja se ne koriste u agregatnoj funkciji idu u odredbu WHERE, a kriterijumi za polja koja se koriste uz agregatne funkcije idu u odredbu HAVING.

Više informacija o odredbi HAVING potražite u temi Odredba HAVING.

Vrh stranice

Kombinovanje rezultata upita: UNION

Kada želite da pregledate sve podatke koje je nekoliko sličnih upita za izdvajanje vratilo kao kombinovani skup, možete da koristite operator UNION.

Operator UNION vam omogućava da kombinujete dva SELECT izraza u jedan. SELECT izrazi koje kombinujete moraju da imaju isti broj polja za izlaz, istim redosledom i sa istim ili kompatibilnim tipovima podataka. Kada pokrenete upit, podaci iz svakog skupa odgovarajućih polja kombinuju se u jedno polje za izlaz da bi svaki izlaz upita imao isti broj polja kao svaki od izraza za izdvajanje.

Napomena

Za svrhe upita za združivanje, tipovi podataka "Broj" i "Tekst" su kompatibilni.

Kada koristite operator UNION, možete navesti da li rezultati upita treba da sadrže duplirane redove, ako postoje, koristeći ključnu reč ALL.

Osnovna SQL sintaksa za upit za združivanje koja kombinuje dva SELECT izraza izgleda ovako:

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

Na primer, zamislite da imate tabelu pod imenom "Proizvodi" i drugu tabelu pod imenom "Usluge". Obe tabele imaju polja koja sadrže ime proizvoda ili usluge, cenu, dostupnost garancije i jemstva i informacije o tome da li vi ekskluzivno pružate proizvod ili uslugu. Iako tabela "Proizvodi" skladišti informacije o garanciji, a tabela "Usluge" skladišti informacije o jemstvu, osnovne informacije su iste (da li određeni proizvod ili usluga uključuju garantovani kvalitet). Možete koristiti upit za združivanje poput sledećeg da biste kombinovali četiri polja iz dve tabele:

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

Više informacija o tome kako da kombinujete SELECT izraze pomoću operatora UNION, potražite u članku "Kombinovanje rezultata nekoliko upita za izdvajanje pomoću upita za združivanje".

Vrh stranice