Prijavite se pomoću Microsoft naloga
Prijavite se ili kreirajte nalog.
Zdravo,
Izaberite drugi nalog.
Imate više naloga
Odaberite nalog pomoću kojeg želite da se prijavite.
Access SQL: osnovni koncepti, rečnik i sintaksa

Kada želite da preuzmete podatke iz baze podataka, od njih tražite podatke koristeći Structured Query Language ili SQL. SQL je računarski jezik koji veoma podseća na engleski, ali programi baze podataka to razumeju. Svaki upit koji pokrenete koristi SQL u pozadini.

Razumevanje načina na koji SQL funkcioniše može da vam pomogne da napravite bolje upite i da lakše razumete 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 SQL?

SQL je računarski jezik za rad sa skupovima činjenica i odnosima između njih. Programi relacione baze podataka, kao što je Microsoft Office Access, koriste SQL za rad sa podacima. Za razliku od mnogih jezika računara, SQL nije teško čitati i razumeti, čak ni za početnike. Kao i mnogi računarski jezici, SQL je međunarodni standard koji prepoznaju tela standarda kao što su ISO i ANSI.

SQL koristite za opis skupova podataka koji vam mogu pomoći da odgovorite na pitanja. Kada koristite SQL, morate da koristite ispravnu sintaksu. Sintaksa je skup pravila pomoću kojih se elementi jezika ispravno kombinuju. SQL sintaksa je zasnovana na sintaksi engleskog jezika i koristi mnoge iste elemente kao i Visual Basic for Applications (VBA) sintaksa.

Na primer, jednostavni SQL izraz koji preuzima listu prezimena za kontakte čije ime je Marija može da izgleda ovako:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Napomena: SQL se ne koristi samo za manipulisanje podacima, već i za kreiranje i menjanje dizajna objekata baze podataka, kao što su tabele. Deo SQL-a koji se koristi za kreiranje i menjanje objekata baze podataka zove se jezik definicije 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 pomoću SQL-a, napišite izraz SELECT. Izraz SELECT sadrži kompletan opis skupa podataka koji želite da dobijete iz baze podataka. To uključuje sledeće:

  • Koje tabele sadrže podatke.

  • Kako su povezani podaci iz različitih izvora.

  • Koja polja ili izračunavanja će dati podatke.

  • Kriterijumi koje podaci moraju da se podudaraju da bi se uključili.

  • Da li i kako da sortirate rezultate.

SQL odredbe

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

SQL odredba

Šta radi

Obavezno

SELECT

Lists polja koja sadrže podatke koji vas interesuju.

Da

FROM

Lists tabelama 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

SQL termini

Svaka SQL odredba je sačinjena od termina – koji se mogu porediti sa delovima govora. Sledeća tabela navodi tipove SQL termina.

SQL termin

Deo govora koji se može kompaparirati

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 koje kao rezultat daju jednu vrednost.

>= Proizvodi. [Cena po jedinici]

Vrh stranice

Osnovne SQL odredbe: SELECT, FROM i WHERE

SQL izraz uzima opšti oblik:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Napomene: 

  • Access zanemaruje prelome reda u SQL izrazu. Međutim, razmotrite korišćenje reda za svaku odredbu da biste poboljšali čitljivost SQL izraza za sebe i druge.

  • Svaki izraz SELECT završava se tačkom i zarezom (;). Tačka i zarez mogu da se pojave na kraju poslednje odredbe ili u samom redu na kraju SQL izraza.

Primer u programu Access

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

Kartica SQL objekta prikazuje instrukciju SELECT

1. ODREDBA SELECT

2. Odredba FROM

3. Odredba WHERE

Ovaj primer SQL izraza čita "Izaberite podatke uskladištene u poljima pod imenom "E-adresa i preduzeće" iz tabele pod imenom "Kontakti", konkretno one zapise u kojima je vrednost polja "Grad" Sijetl".

Hajde da pogledamo primer, jednu po jednu odredbu da biste videli kako funkcioniše SQL sintaksa.

Odredba SELECT

SELECT [E-mail Address], Company

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

Ako identifikator sadrži razmake ili specijalne znakove (kao što je "E-adresa"), on mora da bude u uglastim zagradama.

Odredba SELECT ne mora da kaže koje tabele sadrže polja i ne može da navede uslove koje podaci moraju da ispune da bi se uključili.

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

Odredba FROM

FROM Contacts

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

Odredba FROM ne navodi polja koja treba izabrati.

Odredba WHERE

WHERE City="Seattle"

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

Napomena: Za razliku od odredbi SELECT i FROM, odredba WHERE nije neophodan element izraza SELECT.

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

Vrh stranice

Sortiranje rezultata: ORDER BY

Kao i Microsoft Excel, Access vam omogućava da sortirate rezultate upita na listu sa podacima. Takođe možete u upitu da navedete kako želite da sortirate rezultate kada se upit pokrene pomoću odredbe ORDER BY. Ako koristite odredbu ORDER BY, to je poslednja odredba u SQL izrazu.

Odredba ORDER BY sadrži listu polja koja želite da koristite za sortiranje istim redosledom koji želite da primenite operacije sortiranja.

Na primer, pretpostavimo da želite da se rezultati prvo sortiraju po vrednosti polja "Preduzeće" opadajućem redosledu i – ako postoje zapisi sa istom vrednošću za preduzeće – sortirani pored vrednosti u polju E-adresa u rastućem redosledu. Odredba ORDER BY bi izgledala ovako:

ORDER BY Company DESC, [E-mail Address]

Napomena: Access podrazumevano sortira vrednosti rastućim redosledom (A-Z, od najmanje do najveće). Umesto toga koristite ključnu reč DESC da biste sortirali vrednosti po opadajućem redosledu.

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 najskuplje stavke u zalihama. Da biste to uradili, primenite funkcija zbira na polje u odredbi SELECT. Na primer, ako želite da upit prikazuje broj e-adresa navedenih za svako preduzeće, odredba SELECT može da izgleda ovako:

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

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

Navođenje polja koja se ne koriste u agregatnim funkcijama: odredba GROUP BY

Kada koristite agregatne funkcije, obično morate da kreirate i odredbu GROUP BY. Odredba GROUP BY navodi sva polja na koja ne primenjujete agregatnu funkciju. Ako primenite agregatne funkcije na sva polja u upitu, ne morate da kreirate odredbu GROUP BY.

Odredba GROUP BY odmah sledi odredbu WHERE ili FROM ako ne postoji odredba WHERE. Odredba GROUP BY navodi polja kao što se pojavljuju u odredbi SELECT.

Na primer, ako se nastavi sa prethodnim primerom, ako odredba SELECT primenjuje agregatnu funkciju na [E-adresa], a ne na Preduzeće, odredba GROUP BY bi izgledala ovako:

GROUP BY Company

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

Ograničavanje agregatnih vrednosti pomoću kriterijuma grupe: odredba HAVING

Ako želite da koristite kriterijume da biste ograničili rezultate, ali polje na koje želite da primenite kriterijume koristi se u agregatnu funkciju, 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 (koja izračunava prosečnu vrednost) sa prvim poljem u odredbi SELECT:

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

Ako želite da upit ograniči rezultate na osnovu vrednosti te funkcije COUNT, ne možete da koristite kriterijume za to polje u odredbi WHERE. Umesto toga kriterijume stavljate u odredbu HAVING. Na primer, ako želite da upit vraća redove samo ako postoji više e-adresa povezanih sa preduzećem, odredba HAVING može da izgleda 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 odredbi WHERE, a kriterijumi za polja koja se koriste sa agregatnim funkcijama idu u odredbi 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 zajedno vraća nekoliko sličnih upita za izdvajanje, koristite operator UNION.

Operator UNION vam omogućava da kombinujete dva izraza SELECT u jedan. Select izrazi koje kombinujete moraju da imaju isti broj izlaznih polja, istim redosledom i sa istim ili kompatibilnim tipovima podataka. Kada pokrenete upit, podaci iz svakog skupa odgovarajućih polja kombinuju se u jedno izlazno polje, tako da izlaz upita ima isti broj polja kao svaki izraz izbora.

Napomena: U svrhe upita za združivanje tipovi podataka "Broj" i "Tekst" su kompatibilni.

Kada koristite operator UNION, možete da navedete i da li rezultati upita treba da uključuju duplirane redove, ako postoje, pomoću ključne reči ALL.

Osnovna SQL sintaksa za upit za združivanje koja kombinuje dva SELECT izraza je sledeća:

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

Na primer, pretpostavimo da imate tabelu pod imenom "Proizvodi" i drugu tabelu pod imenom "Usluge". Obe tabele imaju polja koja sadrže ime proizvoda ili usluge, cenu, garanciju ili garanciju dostupnosti i da li nudite proizvod ili uslugu isključivo. Iako tabela "Proizvodi" skladišti informacije o garanciji, a tabela "Usluge" skladišti informacije o garanciji, osnovne informacije su iste (bilo da određeni proizvod ili usluga obuhvataju obećanje o kvalitetu). Upit za združivanje, kao što je sledeći, možete da koristite 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
;

Dodatne informacije o tome kako da kombinujete izraze SELECT pomoću operatora UNION potražite u članku Kombinovanje rezultata nekoliko upita za izdvajanje pomoću upita za združivanje.

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.

Da li su vam ove informacije koristile?

Koliko ste zadovoljni kvalitetom jezika?
Šta je uticalo na vaše iskustvo?
Kada kliknete na dugme Prosledi“, vaše povratne informacije će se koristiti za poboljšanje Microsoft proizvoda i usluga. Vaš IT administrator će moći da prikupi ove podatke. Izjava o privatnosti.

Hvala vam na povratnim informacijama!

×