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

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

Viktig: Denne artikkelen er maskinoversatt, se ansvarsfraskrivelsen. Du finner den engelske versjonen av artikkelen her som referanse.

Hvis spørringene dine ikke gir godt nok resultat, kan du ved å legge til noen grunnleggende SQL-setninger, fokusere på resultatet. La oss se på noen få typer SQL-setninger og setningsdelene som du kan redigere for å få resultatet du ønsker.

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

I denne artikkelen

Opprette en Select-setning

Tilpasse SELECT-setningsdelen

Tilpasse FROM-setningsdelen

Tilpasse WHERE-setningsdelen

Tilpassing med UNION-operatoren

Opprette en utvalgssetning

En SQL-utvalgssetning i SQL har to eller tre setningsdeler. SELECT-setningsdelen forteller databasen hvor det skal ses etter databasen, og ber den returnere et bestemt resultat.

Merknad: SELECT-setninger avsluttes alltid med et semikolon (;) på slutten av den siste setningsdelen eller på en egen linje på slutten av SQL-setningen.

Følgende valgsetning ber Access om å hente informasjon fra kolonnene E-postadresse og Firma i tabellen Kontakter, mer spesifikt hvor "Seattle" finnes i Poststed-kolonnen.

SQL-objektkategorien viser en SELECT-setning

Spørringen ovenfor har tre setningsdeler: SELECT, FROM og WHERE

1. SELECT-setningsdelen lister opp kolonner som inneholder dataene du vil bruke, og har en operator (SELECT) fulgt av to identifikatorer (E-postadresse og Firma). Hvis en identifikator har mellomrom eller spesialtegn (for eksempel E-postadresse 2), må identifikatoren stå i hakeparenteser.

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

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

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

Her er en liste over vanlige SQL-setningsdeler:

SQL-setningsdel

Formelresultat

Obligatorisk ?

SELECT

Viser en liste over feltene som inneholder data av interesse.

Ja

FROM

Viser en liste over 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

ORDER BY

Angir hvordan resultatene skal sorteres.

Nei

GROUP BY

I SQL-setninger som inneholder mengdefunksjoner, viser denne setningsdelen felt som det ikke er et sammendrag av i SELECT-setningsdelen.

Bare hvis det finnes slike felt

HAVING

I SQL-setninger som inneholder mengdefunksjoner, spesifiserer denne setningsdelen betingelsene som gjelder felt som det er sammendrag av i SELECT-setningen.

Nei

Hver SQL-setningsdel består av uttrykk. Her er en liste over vanlige SQL-uttrykk.

SQL-uttrykk

Definisjon

Eksempel

identifikator

Et navn som du bruker til å identifisere et databaseobjekt, som 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

Tilpasse

Eksempel

Hvis du vil se bare de distinkte verdiene.

Bruk nøkkelordet DISTINCT i SELECT-setningsdelen.

Hvis kundene dine for eksempel er fra flere forskjellige avdelingskontorer der noen av dem har samme telefonnummer, og du bare vil se et telefonnummer opplistet én gang, vil SELECT-setningsdelen din bli slik:

SELECT DISTINCT [txtCustomerPhone] 

Slik endrer du måten en identifikator vises på i dataarkvisning for å få bedre lesbarhet.

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 tildeler et felt for å gjøre resultatene lettere å lese.

SELECT [txtCustPhone] AS [Customer Phone]

Tilpasse FROM-setningsdelen

Tilpasse

Eksempel

Du kan bruke et tabellalias eller et annet navn du tilordner til en tabell i en utvalgsspørring. Et tabellalias er nyttig hvis navnet på tabellen er langt, spesielt hvis du har flere felt som har samme navn i forskjellige tabeller.

Slik velger du data fra to felt og begge har navnet ID, det ene fra tabellen tblKunde og det andre fra tabellen tblOrdre:

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

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

FROM [tblCustomer] 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 par av poster fra to datakilder til ett enkelt resultat, eller til å angi om poster skal tas med fra en av tabellene hvis det ikke er noen tilsvarende post i den relaterte tabellen.

Sammenføy tabellene slik at spørringen kombinerer elementene fra tabellene og utelater elementer når det ikke er noen tilsvarende post i den andre tabellen.

Slik kan FROM-setningsdelen se ut:

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

Om bruk av sammenføyninger

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

Ytre koblinger angir om spørringen skal inkludere data der det ikke finnes noen felles verdi. Ytre koblinger er retningsbestemte, som betyr at du kan angi om du vil ta med alle postene fra den første tabellen som er angitt i sammenføyningen (kjent som en venstre kobling), eller ta med alle postene fra den andre tabellen i sammenføyningen (kjent som en høyre kobling). En ytre kobling 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 føye sammen tabeller og spørringer.

Til toppen av siden

Tilpasse WHERE-setningsdelen

WHERE-setningsdelen 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 resultatet i spørringen. Anta at du vil finne telefonnummeret til en kunde og bare husker kundens etternavn som er Andersen. I dette eksemplet er etternavnene lagret i et Etternavn-felt, så SQL-syntaksen vil bli følgende:

WHERE [LastName]='Bagel'

Bruk WHERE-setningsdelen også til å kombinere datakilder for kolonner som har samsvarende data, men forskjellige datatyper. Dette er praktisk etter at du ikke kan opprette en kobling mellom felt som har forskjellige datatyper. Bruke ett felt som et kriterium for det andre feltet, med nøkkelordet som . Har for eksempel hvis du vil bruke data fra en aktiva og ansatte-tabellen, bare når typen aktiva i aktivumet skriver inn feltet i tabellen Aktiva tallet 3 i antall-feltet i Ansatte-tabellen, nedenfor vises det hvordan WHERE-setningsdelen ville sett 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 bruker du en HAVING-setningsdel til å angi vilkår for mengdefelt.

Til toppen av siden

Tilpassing med UNION-operatoren

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

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 til ett utdatafelt. Hvis du vil inkludere eventuelle like rader i resultatet, bruker du ALL-operatoren.

Merknad:  Utvalgssetningen må ha samme antall utdatafelt, samme feltrekkefølge og samme eller kompatible felttyper. For unionsspørringer er datatypene Tall og Tekst kompatible.

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

Til toppen av siden

Merknad: Ansvarsfraskrivelse for maskinoversettelse: Denne artikkelen er oversatt av et datasystem i stedet for en oversetter. Microsoft tilbyr disse maskinoversettelsene slik at brukere som ikke snakker engelsk, får tilgang til innhold om Microsoft-produkter, -tjenester og –teknologier. Ettersom artikkelen er maskinoversatt, kan den inneholde feil i vokabular, syntaks eller grammatikk.

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×