Access SQL: osnovni pojmi, besednjak in sintaksa
Applies ToAccess za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Če želite dobiti podatke iz zbirke podatkov, morate uporabiti jezik SQL (Structured Query Language). SQL je računalniški jezik, ki je precej podoben angleščini, vendar ga razumejo tudi programi zbirk podatkov. Vsaka poizvedba, ki jo zaženete, v ozadju uporablja SQL.

Če razumete delovanje jezika SQL, lahko ustvarite boljše poizvedbe, poleg tega pa lahko tudi popravite poizvedbo, ki ne vrača želenih rezultatov.

To je eden od člankov o strežniku SQL aplikacije Access. V tem članku je opisan osnovni način uporabe jezika SQL za izbor podatkov, za ponazoritev sintakse jezika SQL pa uporablja primere.

V tem članku

Kaj je SQL?

SQL je računalniški jezik za delo z nabori dejstev in relacijami med njimi. Relacijske zbirke podatkov, kot je Microsoft Office Access, uporabljajo jezik SQL za delo s podatki. Za razliko od številnih računalniških jezikov jezika SQL ni težko brati in razumeti, tudi za novince. Podobno kot številni drugi računalniški jeziki je jezik SQL mednarodni standard, ki ga upoštevajo organi, kot sta ISO in ANSI.

Z jezikom SQL opisujete nabore podatkov, s katerimi lahko odgovorite na vprašanja. Ko uporabljate jezik SQL, morate uporabiti pravilno sintakso. Sintaksa je nabor pravil, ki določa pravilno kombinacijo elementov jezika. Sintaksa jezika SQL temelji na sintaksi angleščine in uporablja veliko istih elementov kot sintaksa Visual Basic for Applications (VBA).

Preprosta izjava v jeziku SQL, ki pridobi seznam priimkov za stike z imenom Maja, je lahko podoben temu:

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

Opomba: Jezik SQL ni uporaben le za upravljanje s podatki, omogoča tudi ustvarjanje in spreminjanje načrta predmetov zbirke podatkov, kot so tabele. Del jezika SQL, ki je uporabljen za ustvarjanje in spreminjanje predmetov zbirke podatkov, se imenuje jezik definicije podatkov (DDL). Ta članek ne obravnava jezika DDL. Če želite več informacij, glejte članek Ustvarjanje ali spreminjanje tabel ali kazal s poizvedbo za definicijo podatkov.

Stavki SELECT

Če želite opisati nabor podatkov z jezikom SQL, napišete stavek SELECT. V stavku SELECT je popoln opis nabora podatkov, ki jih želite dobiti iz zbirke podatkov. Vključeno:

  • V katerih tabelah so podatki.

  • Kakšna je relacija med podatki iz različnih virov.

  • Katera polja ali izračuni vrnejo podatke.

  • Pogoji, ki jih morajo podatki izpolniti, da so vključeni.

  • Odločitev o razvrščanju in način razvrščanja podatkov.

Stavki SQL

Podokno kot stavki ima tudi stavek SQL stavčne dele. Vsak stavčni del opravlja določeno funkcijo za stavek SQL. Nekateri deli so obvezni v stavku SELECT. V tej tabeli so najbolj pogosti stavki SQL.

Stavek SQL

Kaj omogoča

Zahtevano

SELECT

Navede polja z želenimi podatki.

Da

FROM

Navede tabele s polji, ki so navedeni v stavku SELECT.

Da

WHERE

Določi pogoje za polja, ki morajo biti izpolnjeni za vsak zapis, za katerega želite, da je vključen v rezultatih.

Ne

ORDER BY

Določi, kako razvrstiti rezultate.

Ne

GROUP BY

V izjavi SQL z združenimi funkcijami navaja polja, ki niso povzeta v stavku SELECT.

Le, če so takšna polja

HAVING

V izjavi SQL, ki ima združene funkcije, določa pogoje za polja, povzeta v izjavi SELECT.

Ne

Pogoji SQL

Vsak stavčni del SQL je sestavljen iz pogojev – primerljive besedne vrste. V tej tabeli so vrste pogojev SQL.

Pogoj SQL

Primerljive besedne vrste

Definicija

Primer

identifikator

samostalnik

Ime, s katerim identificirate predmet zbirke podatkov, na primer ime polja.

Stranke.[Telefonska številka]

operator

glagol ali prislov

Ključna beseda, ki predstavlja dejanje ali ga spreminja.

AS

konstanta

samostalnik

Vrednost, ki se ne spreminja, kot je številka ali NULL.

42

izraz

pridevnik

Kombinacija identifikatorjev, operaterjev, konstant in funkcij, s katerimi ocenjujete vrednost.

>= Izdelki.[Cena enote]

Na vrh strani

Osnovni stavki jezika SQL: SELECT, FROM in WHERE

Splošna oblika stavka SQL:

SELECT field_1FROM table_1WHERE criterion_1;

Opombe: 

  • Access prezre prelome vrstice v stavku SQL. Vendar pa priporočamo, da uporabite vrstico za vsak stavek, saj tako izboljšate berljivost stavkov SQL zase in za druge.

  • Vsak stavek SELECT se konča s podpičjem (;). Podpičje se lahko prikaže na koncu zadnjega stavka ali v vrstici na koncu stavka SQL.

Primer v Accessu

Spodaj je prikazan stavek SQL za preprosto poizvedbo za izbor, kot je lahko videti v Accessu:

Zavihek predmeta SQL kaže izjavo SELECT

1. Stavčni del SELECT

2. Stavčni del FROM

3. Stavčni del WHERE

Ta vzorčni stavek SQL pravi »Izberi podatke, shranjene v poljih, imenovanih »E-poštni naslov« in »Podjetje« iz tabele »Stiki«, zlasti tiste zapise, v katerih je vrednost polja »Mesto« Seattle.«

Oglejmo si primer, vsak stavek posebej. Tako bomo videli, kako deluje sintaksa jezika SQL.

Stavčni del SELECT

SELECT [E-mail Address], Company

To je stavek SELECT. Sestavljen je iz operatorja (SELECT), kateremu sledita dva identifikatorja ([E-poštni naslov] in Podjetje).

Če identifikator vključuje presledke ali posebne znake (na primer »E-poštni naslov«), mora biti obdan z oglatimi oklepaji.

Ni nujno, da stavčni del SELECT določa, v katerih tabelah so polja, in ne more določiti pogojev, ki jih morajo podatki izpolniti, da so vključeni.

Stavčni del SELECT se vedno prikaže pred stavčnim delom FROM v stavku SELECT.

Stavčni del FROM

FROM Contacts

To je stavčni del FROM. Sestavljen je iz operatorja (FROM), kateremu sledi identifikator (Stiki).

Stavčni del FROM ne navaja polj, ki jih je treba izbrati.

Stavčni del WHERE

WHERE City="Seattle"

To je stavčni del WHERE. Sestavljen je iz operatorja (WHERE), kateremu sledi izraz (Mesto="Seattle").

Opomba: Za razliko od stavčnih delov SELECT in FROM, stavčni del WHERE ni obvezen element stavka SELECT.

Številna dejanja, ki jih omogoča jezik SQL, lahko naredite tako, da uporabite stavčne dele SELECT, FROM in WHERE. Več informacij o uporabi teh stavčnih delov najdete v teh člankih:

Na vrh strani

Razvrščanje rezultatov: ORDER BY

Podobno kot Microsoft Excel, tudi Access omogoča razvrščanje rezultatov poizvedbe na podatkovnem listu. V poizvedbi lahko določite tudi način razvrščanja rezultatov ob zagonu poizvedbe s stavkom ORDER BY. Če uporabite stavčni del ORDER BY, je to zadnji stavek v izjavi SQL.

V stavčnem delu ORDER BY je seznam polj, ki jih želite uporabiti za razvrščanje, v istem vrstnem redu, kot ga želite uporabiti za postopke razvrščanja.

Recimo, da želite rezultate najprej razvrstiti po vrednosti polja »Podjetje« v padajočem vrstnem redu in – če obstajajo zapisi z enako vrednostjo za »Podjetje«, razvrščene po vrednostih v polju E-poštni naslov v naraščajočem vrstnem redu. Vaš stavek ORDER BY bi bil podoben tem:

ORDER BY Company DESC, [E-mail Address]

Opomba: Access vrednosti privzeto razvrsti po padajočem vrstnem redu (A-Z, najmanjši do največji). S ključno besedo DESC lahko vrednosti namesto tega razvrstite po padajočem vrstnem redu.

Če želite več informacij o stavčnem delu ORDER BY, glejte članek Stavčni del ORDER BY.

Na vrh strani

Delo s povzetimi podatki: GROUP BY in HAVING

Včasih boste želeli delati s povzetimi podatki, na primer skupna vrednost prodaje v mesecu ali najdražji elementi na zalogi. To naredite tako, da uporabite združevalna funkcija za polje v stavčnem delu SELECT. Če na primer želite, da poizvedba pokaže število e-poštnih naslovov, navedenih za posamezno podjetje, je stavčni del SELECT lahko podoben temu:

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

Združevalne funkcije, ki jih lahko uporabite, so odvisne od vrste podatkov, ki so v polju ali izrazu, ki ga želite uporabiti. Če želite več informacij o razpoložljivih združevalnih funkcij, glejte članek Združevalne funkcije SQL.

Navajanje polj, ki niso uporabljena v združevalni funkciji: Stavčni del GROUP BY

Ko uporabite združevalne funkcije, morate običajno ustvariti tudi stavčni del GROUP BY. Stavčni del GROUP BY navede vsa polja, za katera ne uporabite združevalne funkcije. Če uporabite združevalne funkcije za vsa polja v poizvedbi, vam ni treba ustvariti stavčnega dela GROUP BY.

Stavčni del GROUP BY nemudoma sledi stavčnemu delu WHERE ali stavčnemu delu FROM, če ni stavčnega dela WHERE. Stavčni del GROUP BY navede vsa polja, kot so prikazana v stavčnem delu SELECT.

Če nadaljujemo prejšnji primer: če izbrani stavčni del SELECT uporabi združevalno funkcijo za [E-poštni naslov], vendar ne za polje »Podjetje«, je stavčni del GROUP BY podoben temu:

GROUP BY Company

Če želite več informacij o stavčnem delu GROUP BY, glejte članek Stavčni del GROUP BY.

Omejevanje združenih vrednosti po pogojih skupine: stavčni del HAVING

Če želite uporabiti pogoje za omejevanje rezultatov, vendar je polje, za katerega želite uporabiti pogoj, v združevalni funkciji, ne morete uporabiti stavčnega dela WHERE. Namesto tega uporabite stavčni del HAVING. Stavčni del HAVING deluje kot stavčni del WHERE, vendar je uporabljen za združene podatke.

Recimo, da uporabite funkcijo AVG (ki izračuna povprečno vrednost) s prvim poljem v stavčnem delu SELECT:

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

Če želite, da poizvedba omeji rezultate na podlagi vrednosti funkcije COUNT, ne morete uporabiti pogoja za to polje v stavčnem delu WHERE. Namesto tega postavite pogoje v stavčni del HAVING. Če želite, da poizvedba vrne vrstice le, če je s podjetjem povezan več kot en e-poštni naslov, je stavčni del HAVING podoben temu:

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

Opomba: Poizvedba ima lahko stavčni del WHERE in stavčni del HAVING. Pogoji za polja, ki niso uporabljena v združevalni funkciji, gredo v stavčni del WHERE, pogoji za polja, uporabljena z združevalnimi funkcijami, gredo v stavčni del HAVING.

Če želite več informacij o stavčnem delu HAVING, glejte članek Stavčni del HAVING.

Na vrh strani

Kombiniranje rezultatov poizvedbe: UNION

Če želite pregledati vse podatke, ki jih vrnejo več podobnih izbranih poizvedb skupaj kot kombiniran nabor, uporabite operator UNION.

Z operatorjem UNION lahko dva stavka SELECT kombinirate v enega. Stavki SELECT, ki jih kombinirate, morajo imeti enako število izhodnih polj v istem vrstnem redu in z istimi ali kompatibilnimi vrstami podatkov. Ko poizvedbo zaženete, so podatki iz vsakega nabora pripadajočih polj kombinirani v eno izhodno polje, tako da ima izhod poizvedbe enako število polj kot vsak od izbranih stavkov.

Opomba: Za namene poizvedbe za združevanje sta vrsti podatkov »Število« in »Besedilo« združljivi

Ko uporabite operator UNION, lahko tudi določite, ali naj rezultati poizvedbe vključujejo podvojene vrstice, če obstajajo. To naredite tako, da uporabite ključno besedilo ALL.

Osnovna sintaksa jezika SQL za poizvedbo za združevanje, ki kombinira sva stavka SELECT:

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

Recimo, da imate tabelo z imenom »Izdelki« in drugo tabelo z imenom »Storitve«. V obeh tabelah so polja z imenom izdelka ali storitve, ceno, jamstvom ali jamstvom za razpoložljivost in s tem, ali izdelek ali storitev ponujate izključno. Čeprav so v tabeli »Izdelki« shranjeni podatki o garanciji, v tabeli »Storitve« pa so shranjeni podatki o jamstvu, so osnovni podatki enaki (ali določen izdelek ali storitev vsebuje obljubo o kakovosti). Če želite združiti štiri polja iz dveh tabel, lahko uporabite poizvedbo za združevanje, kot je ta:

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

Če želite več informacij o tem, kako kombinirate stavke SELECT z operatorjem UNION, glejte Združevanje rezultatov več poizvedb za izbiranje s poizvedbo za združevanje.

Na vrh strani

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.

Skupnosti vam pomagajo postaviti vprašanja in odgovoriti nanje, posredovati povratne informacije in prisluhniti strokovnjakom z bogatim znanjem.