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

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

Hvis dine forespørgsler ikke arbejder hårdt nok, kan du ved at tilføje nogle grundlæggende SQL hjælpe med at fokusere dine resultater. Lad os se på nogle få typer SQL-sætninger og de delsætninger eller dele, som du kan 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.

I denne artikel

Opret en Select-sætning

En SQL select-sætning har to til tre delsætninger. SELECT-delsætningen fortæller databasen, hvor dataene skal søges, og beder den om at returnere et bestemt resultat.

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

Følgende select-sætning beder Access om at hente oplysninger fra kolonnerne Mailadresse og Firma fra tabellen Kontakter, specifikt hvor den finder "Seattle" i kolonnen By.

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

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

1. SELECT-delsætningen viser de kolonner, der indeholder de data, du vil bruge, og har en operator (SELECT) efterfulgt af to identifikatorer (E-mail Address og Company). Hvis en identifikator indeholder mellemrum eller specialtegn (f.eks. "Mailadresse"), skal identifikatoren være omsluttet af kantede parenteser.

2. FROM-delsætningen identificerer kildetabellen. I dette eksempel har den en operator (FROM) efterfulgt af en identifikator (Kontakter).

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

Du kan finde flere oplysninger om udvælgelsesforespørgsler i opret en simpel udvælgelsesforespørgsel.

Her er 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 ord. Her er en liste over nogle almindelige SQL-termer.

SQL-term

Definition

Eksempel

id

Et navn, du bruger til at identificere et databaseobjekt, f.eks. kolonnenavnet.

[Mailadresse] og firma

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

Tilpasning af SELECT-delsætningen

Tilpas

Eksempel

Sådan får du kun vist de forskellige værdier.

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

Hvis dine kunder f.eks. er fra flere forskellige afdelingskontorer, og nogle har det samme telefonnummer, og du kun vil have vist et telefonnummer én gang, vil din SELECT-delsætning se sådan ud:

SELECT DISTINCT [txtCustomerPhone] 

Sådan ændrer du den måde, en identifikator vises på i dataarkvisning for at forbedre læsbarheden.

Brug AS-operatoren (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, du tildeler et felt for at gøre det nemmere at læse resultaterne.

SELECT [txtCustPhone] AS [Customer Phone]

Tilpasning af FROM-delsætningen

Tilpas

Eksempel

Du kan bruge et tabelalias eller et andet navn, som du tildeler en tabel i en select-sætning. Et tabelalias er nyttigt, hvis navnet på tabelnavnet er langt, især når du har flere felter, der har samme navn fra forskellige tabeller.

For at vælge data fra to felter, som begge hedder id, hvoraf det ene kommer fra tabellen tblCustomer og det andet fra tabellen tblOrder:

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

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

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

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

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

Brug joinforbindelse til at kombinere par af poster fra to datakilder i ét enkelt resultat eller til at angive, om du vil medtage poster fra en af tabellerne, hvis der ikke er nogen tilsvarende post i den relaterede tabel.

Foren tabellerne, så forespørgslen kombinerer elementerne fra tabellerne og udelader elementer, når der ikke er nogen tilsvarende post i den anden tabel

Sådan kan FROM-delsætningen se ud:

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

Om brug af joinforbindelse

Der findes to typer joinforbindelse, indre og ydre joinforbindelse. Indre joinforbindelse er mere almindelige i forespørgsler. Når du kører en forespørgsel med en indre joinforbindelse, viser resultatet kun de elementer, hvor der findes en fælles værdi i begge af de joinforbindelsestabeller.

Ydre joinforbindelse angiver, om der skal medtages data, hvor der ikke findes nogen fælles værdi. Ydre joinforbindelse er retningsbestemte, hvilket betyder, at du kan angive, om du vil medtage alle posterne fra den første tabel, der er angivet i joinforbindelse (kaldet en venstre joinforbindelse), eller om du vil medtage alle poster fra den anden tabel i joinforbindelse (kaldet en højre joinforbindelse). En ydre joinforbindelse har følgende SQL-syntaks:

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

Se flere oplysninger om brug af joinforbindelse i en forespørgsel i Jointabeller og forespørgsler.

Toppen af siden

Tilpasning af 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.

Et eksempel på, hvordan du kan tilpasse den grundlæggende WHERE-delsætning, er at begrænse resultaterne af en forespørgsel. Antag, at du vil finde telefonnummeret på en kunde og kun kan huske hans efternavn som Bagel. I dette eksempel er efternavnene gemt i feltet Efternavn, så SQL-syntaksen ville være:

WHERE [LastName]='Bagel'

Brug også WHERE-delsætningen til at kombinere datakilder for kolonner, der har matchende data, men forskellige datatyper. Dette er praktisk, da du ikke kan oprette en joinforbindelse mellem felter, der har forskellige datatyper. Brug ét felt som et kriterium for det andet felt med nøgleordet LIKE. Hvis du f.eks. vil bruge data fra tabellen Aktiver og tabellen Medarbejdere, men kun når aktivtypen i feltet Aktivtype i tabellen Aktiver har tallet 3 i feltet Antal i tabellen Medarbejdere, ser din WHERE-delsætning sådan ud:

WHERE field1 LIKE field2

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

Toppen af siden

Tilpasning med UNION-operatoren

Brug UNION-operatoren, når du vil se en kombineret visning af resultater fra flere lignende udvælgelsesforespørgsler. Hvis din database f.eks. har tabellen Produkter og tabellen Tjenester, og de begge har tre felter: eksklusivt tilbud eller produkt eller tjeneste, pris, garanti eller garanti. Selvom tabellen Produkter gemmer garantioplysninger, og tabellen Tjenester gemmer garantioplysninger, er de grundlæggende oplysninger de samme. Du kan bruge en foreningsforespø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 data fra hvert sæt af tilsvarende felter til ét outputfelt. Hvis du vil medtage eventuelle dublerede rækker i resultaterne, skal du bruge operatoren ALL.

Bemærk!:  Select-sætningen skal have det samme antal outputfelter i samme rækkefølge og med de samme eller kompatible datatyper. I forbindelse med en foreningsforespørgsel er datatyperne Tal og Tekst kompatible.

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

Toppen af siden

Har du brug for mere hjælp?

Udvid dine Office-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.

×