Redigere SQL-setninger for å få mer nøyaktig søkeresultat

Gjelder for
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

I denne artikkelen

Create a Select, setning

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

Obs!

SELECT-setninger slutter alltid med et semikolon (;) enten på slutten av den siste setningen eller på en linje for seg selv på slutten av SQL-setningen.

Følgende SELECT-setning 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) fulgt av to identifikatorer (E-postadresse og Firma). Hvis en identifikator inneholder mellomrom eller spesialtegn (for eksempel «E-postadresse»), må du sette identifikatoren i hakeparenteser.

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

3. WHERE-setningen er en valgfri setningsdel. Eksemplet har en operator (HVOR) 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 Hva den gjør Obligatorisk?
SELECT Viser feltene som inneholder data av interesse. Ja
FROM Viser tabellene som inneholder feltene som er oppført i SELECT-setningen. Ja
WHERE Angir feltvilkår som må oppfylles av hver post for å inkluderes i resultatene. Nei
BESTILL INNEN Angir hvordan resultatene skal sorteres. Nei
GROUP BY I et SQL-uttrykk som inneholder mengdefunksjoner, vises felt som ikke er summert i SELECT-setningen. Bare hvis det finnes slike felt
HAVING I en SQL-setning som inneholder mengdefunksjoner, angir vilkårene som gjelder for felt som er oppsummert i SELECT-setningen. Nei

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

SQL-begrep 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 mot en enkelt verdi. >= Produkter. [Enhetspris]

Til toppen av siden

Tilpasse SELECT-setningen

Tilpass Eksempel
For å se bare de distinkte verdiene.
Bruk nøkkelordet DISTINCT i SELECT-setningen.
Hvis kundene for eksempel kommer fra flere forskjellige avdelingskontorer og noen har samme telefonnummer, og du bare ønsker å se et telefonnummer oppført én gang, vil SELECT-setningen være slik:SELECT DISTINCT [txtCustomerPhone]
Slik endrer du 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-setningen. Et feltalias er et navn som du tilordner til et felt for å gjøre det enklere å lese resultatene.
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 SELECT-setning. Et tabellalias er nyttig hvis navnet på tabellnavnet er langt, spesielt når du har flere felt som har samme navn fra forskjellige tabeller. Slik velger du data fra to felt som begge heter ID, og det ene kommer fra tabellen tblKunde og det andre fra tabellen tblOrdre:
VELG [tblKunde]. [ID],
[tblOrder]. [ID]
Bruk AS-operatoren til å definere aliaser i FROM-setningen:
FROM [tblKunde] AS [C],
[tblOrder] AS [O]
Deretter kan du bruke disse tabellaliasene i SELECT-setningsdelen på følgende måte:SELECT [C]. [ID],
[O]. [ID]
Bruk sammenføyninger til å kombinere poster fra to datakilder til ett enkelt resultat, eller til å angi om poster fra den ene av tabellene skal inkluderes hvis det ikke finnes noen samsvarende post i den relaterte tabellen.
Slå sammen tabellene slik at spørringen kombinerer elementene fra tabellene og utelater elementer når det ikke finnes noen samsvarende post i den andre tabellen
Slik kan FROM-setningsdelen se ut:FROM [tblCustomer]
INNER JOIN [tblOrder]
PÅ [tblKunde]. [CustomerID]=[tblOrder]. [KundeID]

Om å bruke sammenføyninger

Det finnes to sammenføyningstyper, indre og ytre sammenføyninger. Indre sammenføyninger er vanligere 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 koblinger angir om data uten noen felles verdi skal inkluderes. Ytre sammenføyninger er retningsbestemte, det vil si at du kan spesifisere om alle postene fra den første tabellen angitt i sammenføyningen (kalt venstre sammenføyning) skal inkluderes, eller om alle postene fra den andre tabellen i sammenføyningen (kalt høyre sammenføyning) skal inkluderes. En ytre sammenføyning har følgende SQL-syntaks:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON 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-setningen

WHERE-setningen inneholder vilkår som bidrar til å begrense antallet 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-setningen er å begrense resultatene av en spørring. La oss si at du vil finne telefonnummeret til en kunde, og at du bare kan huske etternavnet hans som Bagel. I dette eksemplet er etternavnene lagret i et LastName-felt, slik at SQL-syntaksen vil være:

WHERE [LastName]='Bagel'

Bruk WHERE-setningen også til å kombinere datakilder for kolonner som har samsvarende data, men forskjellige datatyper. Dette er nyttig siden du ikke kan opprette en kobling 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 Aktiva-tabellene og Ansatte-tabellene, bare når aktivatypen i aktivatypefeltet i Aktiva-tabellen har tallet 3 i Antall-feltet i Ansatte-tabellen, vil WHERE-setningen se slik ut:

WHERE field1 LIKE field2

Viktig

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

Til toppen av siden

Tilpasse med UNION-operatoren

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

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer 
FROM Services;

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

Obs!

Select-uttrykket må ha samme antall utdatafelt, i samme rekkefølge og med samme eller kompatible datatyper. 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 samlet resultat fra flere spørringer.

Til toppen av siden