Redigere SQL-sætninger for at forbedre forespørgselsresultater

Redigere SQL-sætninger for at forbedre forespørgselsresultater

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Hvis dine forespørgsler ikke er helt præcise, kan du optimere resultaterne ved at tilføje nogle grundlæggende SQL-sætninger. Lad os se på nogle få typer SQL-sætninger og de delsætninger, som du muligvis skal redigere for at få de ønskede resultater.

Bemærk: Denne artikel gælder ikke for Access-webapps – den type database, du kan designe med Access og udgive online. Se Oprette en Access-app for at få flere oplysninger.

Denne artikel indeholder

Oprette en Select-sætning

Tilpasse SELECT-delsætningen

Tilpasse FROM-delsætningen

Tilpasse WHERE-delsætningen

Tilpasse med UNION-operatoren

Oprette en Select-sætning

En SQL Select-sætning indeholder to eller tre delsætninger. SELECT-delsætningen angiver, hvor i databasen der skal søges efter data, og den returnerer resultatet af søgningen.

Bemærk: SELECT-sætninger slutter altid med et semikolon (;) – enten i slutningen af den sidste delsætning eller på en selvstændig linje sidst i SQL-sætningen.

Følgende Select-sætning beder Access hente oplysninger fra felterne E-Mail Address og Company fra tabellen Contacts, når der er angivet "Seattle" i kolonnen City.

SQL-objektfane, der viser en SELECT-sætning

Den ovenstående forespørgsel har tre delsætninger: SELECT, FROM og WHERE.

1. SELECT-delsætningen viser de kolonner, som indeholder de data, du vil bruge, og indeholder en operator (SELECT) efterfulgt af to id'er (E-mail Address og Company). Hvis et id indeholder mellemrum eller specialtegn (f.eks. "E-mail Address"), skal du skrive id'et mellem kantparenteser.

2. FROM-delsætningen angiver kildetabellen. I dette eksempel indeholder den en operator (FROM) efterfulgt af et id (Contacts).

3. WHERE-delsætningen er en valgfri delsætning. I eksemplet indeholder den en operator (WHERE) efterfulgt af et udtryk (City="Seattle").

Yderligere oplysninger om udvælgelsesforespørgsler, skal du se opretter en enkel udvælgelsesforespørgsel.

Her kan du se en liste over almindelige SQL-delsætninger:

SQL-delsætning

Hvad gør den

Påkrævet ?

SELECT

Viser de felter, der indeholder data, som kan have interesse.

Ja

FROM

Viser de tabeller, der indeholder de felter, som er angivet i SELECT-delsætningen.

Ja

WHERE

Angiver de feltkriterier, der skal opfyldes af hver post for at blive inkluderet i resultaterne.

Nej

ORDER BY

Angiver, hvordan resultaterne sorteres.

Nej

GROUP BY

I en SQL-sætning, der indeholder aggregeringsfunktioner, vises felter, som ikke er opsummeret i SELECT-delsætningen.

Kun hvis der findes sådanne felter

HAVING

I en SQL-sætning, der indeholder aggregeringsfunktioner, angives betingelser, der gælder for felter, som er opsummeret i SELECT-sætningen.

Nej

Hver SQL-delsætning består af termer. Her er en liste over nogle almindelige SQL-termer.

SQL-term

Definition

Eksempel

id

Et navn, som kan bruges til at identificere et databaseobjekt, f.eks. kolonnenavnet.

[E-mail Address] og Company

operator

Et nøgleord, der repræsenterer en handling eller ændrer en handling.

AS

konstant

En værdi, der ikke ændrer sig, f.eks. et tal eller NULL.

42

udtryk

En kombination af id'er, operatorer, konstanter og funktioner, der evalueres til en enkelt værdi.

>= Products.[Unit Price]

Toppen af siden

Tilpasse SELECT-delsætningen

Tilpas

Eksempel

Hvis du kun vil se særskilte værdier.

Brug nøgleordet DISTINCT i din SELECT-delsætning.

Hvis dine kunder f.eks. er fra forskellige afdelingskontorer, og nogle har det samme telefonnummer, kan du vælge kun at få vist hvert telefonnummer én gang med følgende SELECT-delsætning:

SELECT DISTINCT [txtCustomerPhone] 

Hvis du vil ændre den måde, som et id vises i dataarkvisning, for at forbedre læsbarheden.

Brug operatoren AS (et nøgleord, der repræsenterer en handling eller ændrer en handling) med et feltalias i din SELECT-delsætning. Et feltalias er et navn, som du tildeler til et felt for at gøre det nemmere at læse resultaterne.

SELECT [txtCustPhone] AS [Customer Phone]

Tilpasse FROM-delsætningen

Tilpas

Eksempel

Du kan bruge et tabelalias eller et andet navn, som du tildeler til en tabel i en Select-sætning. Det er praktisk at anvende et tabelalias, hvis navnet på tabellen er langt – især hvis du har flere felter med samme navn i forskellige tabeller.

Hvis du vil vælge data fra to felter, som begge hedder Id, og den ene kommer fra tabellen tblCustomer, og den anden kommer fra tabellen tblOrder:

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

Brug operatoren AS til at definere tabelaliasser i FROM-delsætningen:

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

Du kan derefter bruges disse tabelaliasser i din SELECT-delsætning på følgende måde:

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

Brug joinforbindelser til at kombinere par af poster fra to datakilder til et enkelt resultat eller til at angive, om du vil medtage poster fra den ene af tabellerne, hvis der ikke findes en tilsvarende post i den relaterede tabel.

Du kan bruge joinforbindelser til at samle tabellerne, så forespørgslen kombinerer elementer fra tabellerne og udelader de elementer, der ikke har en tilsvarende post i den anden tabel.

Her kan du se, hvordan FROM-delsætningen kan se ud:

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

Om brug af joinforbindelser

Der findes to typer joinforbindelser: indre og ydre joinforbindelser. Indre joinforbindelser er mest almindlige i forespørgsler. Når du kører en forespørgsel med en indre joinforbindelse, indeholder resultatet kun de elementer, hvor der findes en fælles værdi mellem de joinforbundne tabeller.

Ydre joinforbindelser minder om indre joinforbindelser, fordi de giver en forespørgsel besked om, hvordan oplysningerne fra de to kilder skal samles. Ydre joinforbindelser er retningsbestemte: du kan angive, om du vil inkludere alle posterne fra den første tabel, der er angivet i joinforbindelsen (kaldes venstre joinforbindelse), eller om alle posterne fra den anden tabel skal inkluderes i joinforbindelsen (kaldes højre joinforbindelse). En ydre joinforbindelse har følgende syntaks:

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

Se flere oplysninger Brug af joinforbindelser i en forespørgsel.

Toppen af siden

Tilpasse WHERE-delsætningen

WHERE-delsætningen indeholder kriterier, der hjælper med at begrænse antallet af elementer, der returneres i en forespørgsel. Se eksempler på forespørgselskriterier , og hvordan de fungerer.

Du kan f.eks. tilpasse den grundlæggende WHERE-delsætning til at begrænse antal resultater i en forespørgsel. Hvis du f.eks. vil finde lokalnummeret til en kunde, og du kun kan huske, at kundens efternavn er Bagel, kan du bruge følgende SQL-syntaks til at finde efternavne fra feltet LastName:

WHERE [LastName]='Bagel'

Brug WHERE-delsætningen også til at kombinere datakilder til kolonner, der har identiske data, men forskellige datatyper. Dette er praktisk da du ikke kan oprette en joinforbindelse mellem felter, der har forskellige datatyper. Bruge ét felt som et kriterium for andet feltet med nøgleord som . Eksempelvis hvis du vil bruge data fra en tabel over aktiver og medarbejdere, har kun, når typen aktiv i aktivet skriver i tabellen Aktiver tallet 3 i feltet Antal i tabellen medarbejdere, her er, hvordan din WHERE-delsætning ville se ud:

WHERE field1 LIKE field2

Vigtigt:  Du kan ikke angive et kriterium for et felt, der bruges med en aggregeringsfunktion i en WHERE-delsætning. I stedet kan du bruge en HAVING-delsætning til at angive kriterier for samlede felter.

Toppen af siden

Tilpasse med UNION-operatoren

Brug operatoren UNION, når du vil have en kombineret visning af resultater fra flere ensartede Select-forespørgsler. Du kan f.eks. have en database, der indeholder tabellerne Products og Services, som begge indeholder tre felter: exclusive offer eller product eller service, price, warranty eller guarantee. Selvom tabellen Products gemmer garantioplysninger i feltet warranty, og tabellen Services gemmer garantioplysninger i feltet guarantee, er oplysningerne basalt set det samme. Du kan bruge en Union-forespørgsel til at kombinere de tre felter fra de to tabeller på følgende måde:

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

Når du kører forespørgslen, kombineres dataene fra hvert sæt tilsvarende felter i ét outputfelt. Hvis du vil medtage dublerede rækker i resultatet, skal du bruge operatoren ALL.

Bemærk:  Select-sætningen skal have det samme antal outputfelter i samme rækkefølge og med samme eller kompatible datatyper. Når der oprettes en foreningsforespørgsel, er datatyperne Tal og Tekst kompatible.

Du kan finde flere oplysninger om foreningsforespørgsler under Brug af en foreningsforespørgsel for at få vist et samlet resultat fra flere forespørgsler.

Toppen af siden

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Udvid dine færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×