Access SQL: osnovni koncepti, vokabular i sintaksa
Applies ToAccess za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Kada želite dohvatiti podatke iz baze podataka, zatražite podatke pomoću Structured Query Language ili SQL. SQL je računalni jezik koji usko sliči engleskom, no ti programi baze podataka razumiju. Svaki upit koji pokrenete koristi SQL u pozadini.

Razumijevanje načina na koji SQL funkcionira može vam pomoći u stvaranju boljih upita i pojednostavniti vam razumijevanje načina rješavanja upita koji ne vraća željene rezultate.

Ovo je jedan iz niza članaka o jeziku Access SQL. U ovom se članku opisuje osnovna upotreba SQL-a za odabir podataka i korištenje primjera za ilustriranje SQL sintakse.

Sadržaj članka

Što je SQL?

SQL je računalni jezik za rad sa skupovima činjenica i odnosima između njih. Programi relacijskih baza podataka, kao što je Microsoft Office Access, koriste SQL za rad s podacima. Za razliku od mnogih računalnih jezika, SQL nije teško čitati i razumjeti, čak ni za početnike. Kao i mnogi računalni jezici, SQL je međunarodni standard koji prepoznaju tijela 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 koristiti ispravnu sintaksu. Sintaksa je skup pravila prema kojima se elementi jezika pravilno kombiniraju. SQL sintaksa temelji se na engleskoj sintaksi i koristi mnoge iste elemente kao sintaksa jezika Visual Basic for Applications (VBA).

Na primjer, jednostavna SQL naredba koja dohvaća popis prezimena za kontakte čije je ime Marija može izgledati ovako:

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

Napomena: SQL se ne koristi samo za rukovanje podacima, već i za stvaranje i mijenjanje dizajna objekata baze podataka, kao što su tablice. Dio SQL-a koji se koristi za stvaranje i mijenjanje objekata baze podataka naziva se jezik za definiranje podataka (DDL). Ova tema ne obuhvaća DDL. Dodatne informacije potražite u članku Stvaranje i izmjena tablica ili indeksa pomoću upita za definiranje podataka.

Naredbe SELECT

Da biste opisali skup podataka pomoću SQL-a, napišite naredbu SELECT. Naredba SELECT sadrži potpuni opis skupa podataka koje želite dohvatiti iz baze podataka. To uključuje sljedeće:

  • Koje tablice sadrže podatke.

  • Način na koji su podaci iz različitih izvora povezani.

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

  • Kriteriji koje podaci moraju podudarati da bi se uvrstili.

  • Hoće li se i kako sortirati rezultati.

SQL izrazi

Kao i rečenica, SQL naredba sadrži rečenice. Svaki uvjet izvodi funkciju za SQL naredbu. Neki su uvjeti obavezni u izjavi SELECT. U sljedećoj su tablici navedeni najčešći SQL uvjeti.

SQL uvjet

Funkcija

Obavezno

SELECT

Lists polja koja sadrže podatke od interesa.

Da

FROM

Lists 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

SQL pojmovi

Svaki SQL uvjet sastoji se od izraza – usporedivih s dijelovima govora. U sljedećoj su tablici navedene vrste SQL termina.

SQL termin

Usporedivi dio govora

Definicija

Primjer

Identifikator

Imenica

Naziv koji koristite za identifikaciju objekta baze podataka, kao što je naziv polja.

Gosti. [Telefonski broj]

operator

glagol ili prilog

Ključna riječ koja predstavlja akciju ili mijenja akciju.

AS

konstanta

Imenica

Vrijednost koja se ne mijenja, npr. broj ili NULL.

42

izraz

Pridjev

Kombinacija identifikatora, operatora, konstanti i funkcija koje se vrednuju kao jedna vrijednost.

>= Proizvodi. [Jedinična cijena]

Vrh stranice

Osnovni SQL izrazi: SELECT, FROM i WHERE

SQL naredba ima opći oblik:

SELECT field_1FROM table_1WHERE criterion_1;

Napomene: 

  • Access zanemaruje prijelome redaka u SQL naredbi. No razmislite o korištenju retka za svaki uvjet da biste poboljšali čitljivost SQL naredbi za sebe i druge.

  • Svaka naredba SELECT završava točkom sa zarezom (;). Točka-zarez može se pojaviti na kraju posljednjeg uvjeta ili na samom retku na kraju SQL naredbe.

Primjer u programu Access

U nastavku je prikazano kako SQL naredba za jednostavan upit odabiranja može izgledati u programu Access:

Tablica SQL objekata koja prikazuje naredbu SELECT

1. Uvjet SELECT

2. Uvjet FROM

3. Uvjet WHERE

U ovom se primjeru SQL naredba čita "Odabir podataka pohranjenih u poljima pod nazivom Adresa e-pošte i Tvrtka iz tablice Kontakti, posebno onih zapisa u kojima je vrijednost polja Grad Seattle."

Pogledajmo primjer, jedan po jedan uvjet da biste vidjeli kako funkcionira SQL sintaksa.

Uvjet SELECT

SELECT [E-mail Address], Company

Ovo je uvjet SELECT. Sastoji se od operatora (SELECT) iza kojeg slijede dva identifikatora ([Adresa e-pošte] i Tvrtka).

Ako identifikator sadrži razmake ili posebne znakove (npr. "Adresa e-pošte"), mora biti uglatim zagradama.

Uvjet SELECT ne mora reći koje tablice sadrže polja i ne može navesti uvjete koje podaci moraju ispunjavati.

Uvjet SELECT uvijek se pojavljuje ispred uvjeta FROM u izjavi SELECT.

Uvjet FROM

FROM Contacts

Ovo je uvjet FROM. Sastoji se od operatora (FROM) iza kojeg slijedi identifikator (Kontakti).

Uvjet FROM ne navodi polja koja treba odabrati.

Uvjet WHERE

WHERE City="Seattle"

Ovo je uvjet WHERE. Sastoji se od operatora (WHERE) i izraza (Grad="Seattle").

Napomena: Za razliku od uvjeta SELECT i FROM, uvjet WHERE nije obavezan element naredbe SELECT.

Mnoge akcije koje SQL omogućuje možete izvršiti pomoću uvjeta SELECT, FROM i WHERE. Dodatne informacije o korištenju tih uvjeta navedene su u sljedećim dodatnim člancima:

Vrh stranice

Sortiranje rezultata: ORDER BY

Kao i Microsoft Excel, Access vam omogućuje sortiranje rezultata upita u podatkovnoj tablici. U upitu možete navesti i način sortiranja rezultata prilikom pokretanja upita pomoću uvjeta ORDER BY. Ako koristite uvjet ORDER BY, to je posljednji uvjet u SQL naredbi.

Uvjet ORDER BY sadrži popis polja koja želite koristiti za sortiranje istim redoslijedom kojim želite primijeniti operacije sortiranja.

Pretpostavimo, primjerice, da želite da se rezultati najprije sortiraju prema vrijednosti polja Tvrtka silaznim redoslijedom i , ako postoje zapisi iste vrijednosti za tvrtku – sortirani pored vrijednosti u polju Adresa e-pošte uzlaznim redoslijedom. Uvjet ORDER BY izgledat će ovako:

ORDER BY Company DESC, [E-mail Address]

Napomena: Access po zadanom sortira vrijednosti uzlaznim redoslijedom (od A do Ž, od najmanjeg do najvećeg). Pomoću ključne riječi DESC sortirajte vrijednosti silaznim redoslijedom.

Dodatne informacije o uvjetu ORDER BY potražite u temi ORDER BY Uvjet.

Vrh stranice

Rad sa sažetim podacima: GROUP BY i HAVING

Ponekad želite raditi sa sažetim podacima, kao što su ukupna prodaja u mjesecu ili najskuplji artikli u inventaru. Da biste to učinili, primijenite funkcija zbrajanja na polje u uvjetu SELECT. Ako, primjerice, želite da upit prikazuje broj adresa e-pošte navedenih za svaku tvrtku, uvjet SELECT može izgledati ovako:

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

Funkcije zbrajanja koje možete koristiti ovise o vrsti podataka u polju ili izrazu koji želite koristiti. Dodatne informacije o dostupnim funkcijama zbrajanja potražite u članku SQL agregacijske funkcije.

Određivanje polja koja se ne koriste u funkciji zbrajanja: uvjet GROUP BY

Kada koristite agregacijske funkcije, obično morate stvoriti i uvjet GROUP BY. Uvjet GROUP BY sadrži popis svih polja na koja ne primjenjujete funkciju zbrajanja. Ako na sva polja u upitu primijenite agregacijske funkcije, ne morate stvarati uvjet GROUP BY.

Uvjet GROUP BY odmah slijedi uvjet WHERE ili uvjet FROM ako ne postoji uvjet WHERE. Uvjet GROUP BY navodi polja kako se prikazuju u uvjetu SELECT.

Ako, primjerice, nastavite s prethodnim primjerom, ako uvjet SELECT primjenjuje funkciju zbrajanja na [Adresa e-pošte], ali ne i na Tvrtku, uvjet GROUP BY izgledat će ovako:

GROUP BY Company

Dodatne informacije o uvjetu GROUP BY potražite u temi GROUP BY uvjet.

Ograničavanje zbirnih vrijednosti pomoću kriterija grupe: uvjet HAVING

Ako rezultate želite ograničiti pomoću kriterija, no polje na koje želite primijeniti kriterije koristi se u funkciji zbrajanja, ne možete koristiti uvjet WHERE. Umjesto toga koristite uvjet HAVING. Uvjet HAVING funkcionira kao uvjet WHERE, ali se koristi za skupne podatke.

Pretpostavimo, primjerice, da koristite funkciju AVG (koja izračunava prosječnu vrijednost) s prvim poljem u uvjetu SELECT:

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

Ako želite da upit ograniči rezultate na temelju vrijednosti te funkcije COUNT, ne možete koristiti kriterije za to polje u uvjetu WHERE. Umjesto toga kriterije stavljate u uvjet HAVING. Ako, primjerice, želite da upit vrati retke samo ako je s tvrtkom povezano više adresa e-pošte, uvjet HAVING može izgledati ovako:

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

Napomena: Upit može imati uvjet WHERE i uvjet HAVING – kriteriji za polja koja se ne koriste u funkciji zbrajanja idu u uvjet WHERE, a kriteriji za polja koja se koriste s agregacskim funkcijama idu u uvjet HAVING.

Dodatne informacije o uvjetu HAVING potražite u temi UVJET HAVING.

Vrh stranice

Kombiniranje rezultata upita: UNION

Kada želite pregledati sve podatke koje je vratilo nekoliko sličnih upita odabiranja zajedno, kao kombinirani skup, koristite operator UNION.

Operator UNION omogućuje kombiniranje dviju naredbi SELECT u jednu. Naredbe SELECT koje kombinirate moraju imati isti broj izlaznih polja, istog redoslijeda i s istim ili kompatibilnim vrstama podataka. Kada pokrenete upit, podaci iz svakog skupa odgovarajućih polja kombiniraju se u jedno izlazno polje tako da izlaz upita ima isti broj polja kao i svaka naredba odabira.

Napomena: Za potrebe upita s unijom vrste podataka Broj i Tekst kompatibilne su.

Kada koristite operator UNION, možete odrediti i hoće li rezultati upita sadržavati duplicirane retke, ako postoje, pomoću ključne riječi ALL.

Osnovna SQL sintaksa za upit s unijom koja kombinira dvije naredbe SELECT sljedeća je:

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

Pretpostavimo, primjerice, da imate tablicu s nazivom Proizvodi i drugu tablicu pod nazivom Servisi. Obje tablice sadrže polja koja sadrže naziv proizvoda ili usluge, cijenu, jamstvo ili zajamčenu dostupnost te nudite li proizvod ili uslugu isključivo. Iako tablica Proizvodi pohranjuje informacije o jamstvu, a u tablici Servisi pohranjuju se podaci o jamstvu, osnovne su informacije iste (bez obzira na to obuhvaća li određeni proizvod ili uslugu obećanje kvalitete). Da biste kombinirali četiri polja iz dviju tablica, možete koristiti upit s unijom, primjerice sljedeće:

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

Dodatne informacije o kombiniranju naredbi SELECT pomoću operatora UNION potražite u članku Kombiniranje rezultata nekoliko upita odabiranja pomoću upita s unijom.

Vrh stranice

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na njih, pošaljete povratne informacije i čujete se sa stručnjacima s bogatim znanjem.