Redigere SQL-setninger for å få mer nøyaktig søkeresultat
Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Hvis spørringene ikke fungerer hardt nok, kan det å legge til noen grunnleggende SQL setninger bidra til å fokusere resultatene. La oss se på noen få typer SQL-setninger og setninger eller deler som du kan redigere for å få resultatene du ønsker.

Obs!:  Denne artikkelen gjelder ikke for Access Web Apps – den typen databaser du utformer med Access og publiserer på nettet.

I denne artikkelen

Opprett en Select-setning

En SQL-utvalgssetning har to til tre setninger. SELECT-setningen forteller databasen hvor dataene skal lete, og ber den om å returnere et bestemt resultat.

Obs!:  SELECT-setninger slutter alltid med semikolon (;) enten på slutten av den siste setningen eller på en linje alene på slutten av SQL-setningen.

Følgende utvalgssetning ber Access om å få informasjon fra kolonnene E-postadresse og Firma, fra Kontakter-tabellen, spesielt der den finner «Seattle» i By-kolonnen.

SQL-objektkategorien viser en SELECT-setning

Spørringen ovenfor har tre setninger SELECT, FROM og WHERE.

1. SELECT-setningen viser kolonnene som inneholder dataene du vil bruke, og har en operator (SELECT) etterfulgt av to identifikatorer (E-postadresse og firma). Hvis en identifikator har mellomrom eller spesialtegn (for eksempel «E-postadresse»), omslutter du identifikatoren i hakeparenteser.

2. FROM-setningsdelen identifiserer kildetabellen. I dette eksemplet har den en operator (FROM) etterfulgt av en identifikator (Kontakter).

3. WHERE-setningsdelen er en valgfri setning. Eksemplet har en operator (WHERE) etterfulgt av et uttrykk (City="Seattle").

Hvis du vil ha mer informasjon om utvalgsspørringer, kan du se opprette en enkel utvalgsspørring.

Her er en liste over vanlige SQL-setninger:

SQL-setning

Dette gjør den

Obligatorisk ?

SELECT

Viser feltene som inneholder interessante data.

Ja

FROM

Viser 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

Hver SQL-setning består av termer. Her er en liste over noen vanlige SQL-termer.

SQL-term

Definisjon

Eksempel

Identifikator

Et navn som du bruker til å identifisere et databaseobjekt, for eksempel kolonnenavnet.

[E-postadresse] og firma

operator

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

AS

konstant

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

42

uttrykk

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

>= Produkter. [Enhetspris]

Til toppen av siden

Tilpasse SELECT-setningsdelen

Tilpass

Eksempel

Hvis du bare vil se de distinkte verdiene.

Bruk NØKKELORDET DISTINCT i SELECT-setningsdelen.

Hvis kundene for eksempel er fra flere forskjellige avdelingskontorer og noen har samme telefonnummer, og du bare vil se et telefonnummer oppført én gang, vil SELECT-setningen være slik:

SELECT DISTINCT [txtCustomerPhone] 

Hvis du vil endre hvordan en identifikator vises i dataarkvisning for å forbedre lesbarheten.

Bruk AS-operatoren (et nøkkelord som representerer en handling eller endrer en handling) med et feltalias i SELECT-setningsdelen. Et feltalias er et navn du tilordner til et felt for å gjøre resultatene enklere å lese.

SELECT [txtCustPhone] AS [Customer Phone]

Tilpasse FROM-setningsdelen

Tilpass

Eksempel

Du kan bruke et tabellalias eller et annet navn som du tilordner til en tabell i en utvalgssetning. Et tabellalias er nyttig hvis navnet på tabellnavnet er langt, spesielt når du har flere felt som har samme navn fra forskjellige tabeller.

For å velge data fra to felt, begge kalt ID, hvorav den ene kommer fra tabellen tblKunde og den andre fra tabellen tblOrder:

SELECT [tblCustomer].[ID],        [tblOrder].[ID]

Bruk AS-operatoren til å definere tabellaliaser i FROM-setningsdelen:

FROM [tblCustomer] AS [C],      [tblOrder] AS [O] 

Du kan deretter bruke disse tabellaliasene i SELECT-setningsdelen, som følger:

SELECT [C].[ID],        [O].[ID]

Bruk sammenføyninger til å kombinere poster fra to datakilder til ett enkelt resultat, eller til å angi om poster fra en av tabellene skal inkluderes hvis det ikke finnes noen tilsvarende post i den relaterte tabellen.

Føy sammen tabellene slik at spørringen kombinerer elementene fra tabellene, og utelater elementer når det ikke finnes noen tilsvarende post i den andre tabellen

Slik kan FROM-setningsdelen se ut:

FROM [tblCustomer] INNER JOIN [tblOrder]ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID] 

Bruke sammenføyninger

Det finnes to typer sammenføyninger, indre og ytre sammenføyninger. Indre sammenføyninger er mer vanlig i spørringer. Når du kjører en spørring med en indre sammenføyning, viser resultatet bare de elementene der det finnes en felles verdi i begge de sammenføyde tabellene.

Ytre sammenføyninger angir om data skal inkluderes der det ikke finnes noen felles verdi. Ytre sammenføyninger er retningsvise, noe som betyr at du kan angi om du vil inkludere alle postene fra den første tabellen som er angitt i sammenføyningen (kalt en venstre sammenføyning), eller om du vil inkludere alle postene fra den andre tabellen i sammenføyningen (kalt en høyre sammenføyning). En ytre sammenføyning har følgende SQL-syntaks:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Se mer informasjon om hvordan du bruker sammenføyninger i en spørring i Sammenføyningstabeller og spørringer.

Til toppen av siden

Tilpasse WHERE-setningsdelen

WHERE-setningen inneholder vilkår som bidrar til å begrense antall elementer som returneres i en spørring. Se eksempler på spørringsvilkår og hvordan de fungerer.

Et eksempel på hvordan du kan tilpasse den grunnleggende WHERE-setningsdelen, er å begrense resultatene av en spørring. La oss si at du vil finne telefonnummeret til en kunde, og kan bare huske etternavnet hans som Bagel. I dette eksemplet lagres etternavnene i et Etternavn-felt, så SQL-syntaksen vil være:

WHERE [LastName]='Bagel'

Bruk WHERE-setningen også til å kombinere datakilder for kolonner som har samsvarende data, men ulike datatyper. Dette er nyttig fordi du ikke kan opprette en sammenføyning mellom felt som har forskjellige datatyper. Bruk ett felt som vilkår for det andre feltet, med LIKE-nøkkelordet . Hvis du for eksempel vil bruke data fra en Aktiva-tabell og Ansatte-tabell, bare når aktivatypen i aktivatypefeltet i Aktiva-tabellen har tallet 3 i Antall-feltet i Ansatte-tabellen, vil WHERE-setningsdelen se ut:

WHERE field1 LIKE field2

Viktig!:  Du kan ikke angi vilkår for et felt som brukes med en mengdefunksjon i en WHERE-setningsdel. I stedet kan bruke du en HAVING-setning til å angi vilkår for mengdefeltene.

Til toppen av siden

Tilpassing med UNION-operatoren

Bruk UNION-operatoren når du vil se en kombinert visning av resultater fra flere lignende utvalgsspørringer. Hvis databasen for eksempel har en produkttabell og en tjenestetabell, og begge har tre felt: eksklusivt tilbud eller produkt eller service, pris, garanti eller garanti. Selv om Produkter-tabellen lagrer garantiinformasjon, og Services-tabellen lagrer garantiinformasjon, er den grunnleggende informasjonen den samme. Du kan bruke en unionsspørring til å kombinere de tre feltene fra de to tabellene som dette:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Når du kjører spørringen, kombineres data fra hvert sett med tilsvarende felt til ett utdatafelt. Hvis du vil inkludere eventuelle dupliserte rader i resultatene, bruker du ALL-operatoren.

Obs!:  Select-setningen må ha samme antall utdatafelt, i samme rekkefølge og med de samme eller kompatible datatypene. I forbindelse med en unionsspørring er datatypene Tall og Tekst kompatible.

Hvis du vil ha mer informasjon om unionsspørringer, kan du se bruke en unionsspørring til å vise et enhetlig resultat fra flere spørringer.

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.