Access SQL: grunnleggende konsepter, vokabular og syntaks
Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Når du vil hente data fra en database, ber du om dataene ved hjelp av Structured Query Language eller SQL. SQL er et datamaskinspråk som ligner på engelsk, men som databaseprogrammer forstår. Hver spørring du kjører, bruker SQL i bakgrunnen.

Å forstå hvordan SQL fungerer kan hjelpe deg med å opprette bedre spørringer, og det kan gjøre det enklere for deg å forstå hvordan du løser en spørring som ikke returnerer resultatene du ønsker.

Dette er én av et sett med artikler om Access SQL. Denne artikkelen beskriver grunnleggende bruk av SQL til å velge data, og bruker eksempler til å illustrere SQL-syntaks.

I denne artikkelen

Hva er SQL?

SQL er et dataspråk for å arbeide med sett med fakta og relasjonene mellom dem. Relasjonsdatabaseprogrammer, for eksempel Microsoft Office Access, bruker SQL til å arbeide med data. I motsetning til mange datamaskinspråk er ikke SQL vanskelig å lese og forstå, selv for en nybegynner. I likhet med mange dataspråk er SQL en internasjonal standard som er anerkjent av standardorganer som ISO og ANSI.

Du bruker SQL til å beskrive datasett som kan hjelpe deg med å svare på spørsmål. Når du bruker SQL, må du bruke riktig syntaks. Syntaks er settet med regler der elementene i et språk kombineres riktig. SQL-syntaks er basert på engelsk syntaks, og bruker mange av de samme elementene som Visual Basic for Applications (VBA)-syntaks.

For eksempel en enkel SQL-setning som henter en liste over etternavn for kontakter der fornavnet er Mary, kan ligne på dette:

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

Obs!: SQL brukes ikke bare til å manipulere data, men også for å opprette og endre utformingen av databaseobjekter, for eksempel tabeller. Delen av SQL som brukes til å opprette og endre databaseobjekter, kalles datadefinisjonsspråk (DDL). Dette emnet dekker ikke DDL. Hvis du vil ha mer informasjon, kan du se artikkelen Opprette eller endre tabeller eller indekser ved hjelp av en datadefinisjonsspørring.

SELECT-setninger

Hvis du vil beskrive et sett med data ved hjelp av SQL, skriver du en SELECT-setning. En SELECT-setning inneholder en fullstendig beskrivelse av et sett med data som du vil hente fra en database. Dette inkluderer følgende:

  • Hvilke tabeller inneholder dataene.

  • Hvordan data fra ulike kilder er relatert.

  • Hvilke felt eller beregninger som skal produsere dataene.

  • Vilkår som dataene må samsvare med for å inkluderes.

  • Om og hvordan du sorterer resultatene.

SQL-setninger

Som en setning har en SQL-setning setninger. Hver setning utfører en funksjon for SQL-setningen. Noen setninger kreves i en SELECT-setning. Tabellen nedenfor viser de vanligste SQL-setningene.

SQL-setning

Dette gjør den

Obligatorisk

SELECT

Lister feltene som inneholder interessante data.

Ja

FROM

Lister tabellene som inneholder feltene som er oppført i SELECT-setningsdelen.

Ja

WHERE

Angir feltvilkår som må oppfylles av hver post som skal inkluderes i resultatene.

Nei

BESTILL ETTER

Angir hvordan resultatene skal sorteres.

Nei

GROUP BY

I en SQL-setning som inneholder mengdefunksjoner, vises felt som ikke er oppsummert i SELECT-setningen.

Bare hvis det finnes slike felt

HAVING

I en SQL-setning som inneholder mengdefunksjoner, angir du betingelser som gjelder for felt som summeres i SELECT-setningen.

Nei

SQL-termer

Hver SQL-setning består av termer – som kan sammenlignes med ordklasser. Tabellen nedenfor viser typer SQL-termer.

SQL-term

Sammenlignbar del av tale

Definisjon

Eksempel

Identifikator

Substantiv

Et navn som du bruker til å identifisere et databaseobjekt, for eksempel navnet på et felt.

Kunder. [Telefonnummer]

operator

verb eller adverb

Et nøkkelord som representerer en handling eller endrer en handling.

AS

konstant

Substantiv

En verdi som ikke endres, for eksempel et tall eller NULL.

42

uttrykk

Adjektiv

En kombinasjon av identifikatorer, operatorer, konstanter og funksjoner som evalueres til én enkelt verdi.

>= Produkter. [Enhetspris]

Til toppen av siden

Grunnleggende SQL-setninger: SELECT, FROM og WHERE

En SQL-setning tar den generelle formen:

SELECT field_1FROM table_1WHERE criterion_1;

Obs!: 

  • Access ignorerer linjeskift i en SQL-setning. Vurder imidlertid å bruke en linje for hver setning for å forbedre lesbarheten til SQL-setningene for deg selv og andre.

  • Hver SELECT-setning slutter med et semikolon (;). Semikolonet kan vises på slutten av den siste setningen eller på en linje alene på slutten av SQL-setningen.

Et eksempel i Access

Følgende illustrerer hvordan en SQL-setning for en enkel utvalgsspørring kan se ut i Access:

SQL-objektkategorien viser en SELECT-setning

1. SELECT-setningsdel

2. FROM-setningsdel

3. WHERE-setningsdel

I dette eksemplet leser SQL-setningen «Velg dataene som er lagret i feltene kalt E-postadresse og Firma fra tabellen Kontakter, spesielt de postene der verdien for feltet By er Seattle.»

La oss se på eksemplet, én setning om gangen, for å se hvordan SQL-syntaks fungerer.

SELECT-setningsdelen

SELECT [E-mail Address], Company

Dette er SELECT-setningsdelen. Den består av en operator (SELECT) etterfulgt av to identifikatorer ([E-postadresse] og Firma).

Hvis en identifikator inneholder mellomrom eller spesialtegn (for eksempel «E-postadresse»), må den stå i hakeparenteser.

En SELECT-setningsdel trenger ikke å si hvilke tabeller som inneholder feltene, og den kan ikke angi betingelser som må oppfylles av dataene som skal inkluderes.

SELECT-setningsdelen vises alltid foran FROM-setningsdelen i en SELECT-setning.

FROM-setningsdelen

FROM Contacts

Dette er FROM-setningsdelen. Den består av en operator (FROM) etterfulgt av en identifikator (Kontakter).

En FROM-setning viser ikke feltene som skal velges.

WHERE-setningsdelen

WHERE City="Seattle"

Dette er WHERE-setningsdelen. Den består av en operator (WHERE) etterfulgt av et uttrykk (City="Seattle").

Obs!: I motsetning til SELECT- og FROM-setningene er ikke WHERE-setningsdelen et nødvendig element i en SELECT-setning.

Du kan utføre mange av handlingene som SQL gjør at du kan gjøre ved hjelp av SELECT-, FROM- og WHERE-setninger. Du finner mer informasjon om hvordan du bruker disse setningene i disse tilleggsartiklene:

Til toppen av siden

Sortere resultatene: SORTER ETTER

I likhet med Microsoft Excel kan du sortere spørringsresultater i et dataark i Access. Du kan også angi i spørringen hvordan du vil sortere resultatene når spørringen kjøres, ved hjelp av en ORDER BY-setning. Hvis du bruker en ORDER BY-setningsdel, er det den siste setningen i SQL-setningen.

En ORDER BY-setningsdel inneholder en liste over feltene du vil bruke for sortering, i samme rekkefølge som du vil bruke sorteringsoperasjonene.

Anta for eksempel at du vil at resultatene først skal sorteres etter verdien i feltet Firma i synkende rekkefølge, og – hvis det finnes poster med samme verdi for firmaet – sortert etter verdiene i feltets e-postadresse i stigende rekkefølge. ORDER BY-setningsdelen vil ligne på følgende:

ORDER BY Company DESC, [E-mail Address]

Obs!: Som standard sorteres verdiene i stigende rekkefølge (A–Å, minst til størst). Bruk NØKKELSC-nøkkelordet til å sortere verdier i synkende rekkefølge i stedet.

Hvis du vil ha mer informasjon om ORDER BY-setningsdelen, kan du se emnet ORDER BY Clause.

Til toppen av siden

Arbeid med summerte data: GROUP BY og HAVING

Noen ganger vil du arbeide med summerte data, for eksempel totalt salg i en måned, eller de dyreste varene i en beholdning. Dette gjør du ved å bruke en mengdefunksjon på et felt i SELECT-setningsdelen. Hvis du for eksempel vil at spørringen skal vise antallet e-postadresser som er oppført for hvert selskap, kan SELECT-setningen se omtrent slik ut:

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

Mengdefunksjonene du kan bruke, avhenger av hvilken type data som er i feltet eller uttrykket du vil bruke. Hvis du vil ha mer informasjon om de tilgjengelige mengdefunksjonene, kan du se artikkelen SQL Aggregate Functions.

Angi felt som ikke brukes i en mengdefunksjon: GROUP BY-setningsdelen

Når du bruker mengdefunksjoner, må du vanligvis også opprette en GROUP BY-setningsdel. En GROUP BY-setningsdel viser alle feltene som du ikke bruker en mengdefunksjon på. Hvis du bruker mengdefunksjoner på alle feltene i en spørring, trenger du ikke å opprette GROUP BY-setningsdelen.

En GROUP BY-setningsdel følger umiddelbart WHERE-setningsdelen eller FROM-setningsdelen hvis det ikke finnes noen WHERE-setning. En GROUP BY-setningsdel viser feltene slik de vises i SELECT-setningsdelen.

Hvis du for eksempel fortsetter det forrige eksemplet, hvis SELECT-setningsdelen bruker en mengdefunksjon på [E-postadresse], men ikke for selskapet, vil GROUP BY-setningsdelen se omtrent slik ut:

GROUP BY Company

Hvis du vil ha mer informasjon om GROUP BY-setningsdelen, kan du se emnet GROUP BY Clause.

Begrense mengdeverdier ved hjelp av gruppevilkår: HAVING-setningsdelen

Hvis du vil bruke vilkår til å begrense resultatene, men feltet du vil bruke vilkår på, brukes i en mengdefunksjon, kan du ikke bruke en WHERE-setning. I stedet bruker du en HAVING-setningsdel. En HAVING-setning fungerer som en WHERE-setningsdel, men brukes for aggregerte data.

Anta for eksempel at du bruker GJENNOMSNITT-funksjonen (som beregner en gjennomsnittsverdi) med det første feltet i SELECT-setningen:

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

Hvis du vil at spørringen skal begrense resultatene basert på verdien til denne ANTALL-funksjonen, kan du ikke bruke et vilkår for dette feltet i WHERE-setningsdelen. I stedet legger du vilkårene i en HAVING-setningsdel. Hvis du for eksempel bare vil at spørringen skal returnere rader hvis det er mer enn én e-postadresse som er knyttet til firmaet, kan HAVING-setningsdelen se omtrent slik ut:

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

Obs!: En spørring kan ha en WHERE-setningsdel og en HAVING-setning – vilkår for felt som ikke brukes i en mengdefunksjon, går i WHERE-setningsdelen, og vilkår for felt som brukes med mengdefunksjoner, går i HAVING-setningsdelen.

Hvis du vil ha mer informasjon om HAVING-setningsdelen, kan du se emnet HAVING-setning.

Til toppen av siden

Kombinerer spørringsresultater: UNION

Når du vil se gjennom alle dataene som returneres av flere lignende utvalgsspørringer sammen, bruker du UNION-operatoren som et kombinert sett.

Union-operatoren lar deg kombinere to SELECT-setninger i én. SELECT-setningene du kombinerer, må ha samme antall utdatafelt, i samme rekkefølge og med de samme eller kompatible datatypene. Når du kjører spørringen, kombineres data fra hvert sett med tilsvarende felt i ett utdatafelt, slik at spørringsutdataene har samme antall felt som hvert av utvalgssetningene.

Obs!: I forbindelse med en unionsspørring er datatypene Tall og Tekst kompatible.

Når du bruker UNION-operatoren, kan du også angi om spørringsresultatene skal inneholde dupliserte rader, hvis det finnes noen, ved hjelp av ALL-nøkkelordet.

Den grunnleggende SQL-syntaksen for en unionsspørring som kombinerer to SELECT-setninger, er som følger:

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

Anta for eksempel at du har en tabell kalt Produkter og en annen tabell kalt Tjenester. Begge tabellene har felt som inneholder navnet på produktet eller tjenesten, prisen, garantien eller garantitilgjengeligheten, og om du tilbyr produktet eller tjenesten utelukkende. Selv om produkter-tabellen lagrer garantiinformasjon, og tjenestetabellen lagrer garantiinformasjon, er den grunnleggende informasjonen den samme (enten et bestemt produkt eller en bestemt tjeneste inneholder et løfte om kvalitet). Du kan bruke en unionsspørring, for eksempel følgende, til å kombinere de fire feltene fra de to tabellene:

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

Hvis du vil ha mer informasjon om hvordan du kombinerer SELECT-setninger ved hjelp av UNION-operatoren, kan du se Kombinere resultatene av flere utvalgsspørringer ved hjelp av en unionsspørring.

Til toppen av siden

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.