Hvis dine forespørgsler ikke arbejder hårdt nok, kan det hjælpe at fokusere på dine resultater ved at tilføje nogle grundlæggende SQL sætninger. 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 der skal søges efter dataene, 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.
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 (Mailadresse og Firma). Hvis en identifikator har mellemrum eller specialtegn (f.eks. "Mailadresse"), skal du sætte id'et i 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. Eksemplet har en operator (WHERE) efterfulgt af et udtryk (City="Seattle").
Du kan finde flere oplysninger om udvælgelsesforespørgsler under Oprette en simpel udvælgelsesforespørgsel.
Her er en liste over almindelige SQL-delsætninger:
SQL-delsætning |
Hvad gør den |
Er det 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 udtryk. 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] |
Tilpasning af SELECT-delsætningen
Tilpas |
Eksempel |
Sådan får du kun vist de entydige værdier. Brug nøgleordet DISTINCT i select-delsætningen. |
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 være sådan:
|
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. |
|
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 hvis du har flere felter, der har samme navn fra forskellige tabeller. |
Hvis du vil vælge data fra to felter, begge kaldet ID, hvoraf det ene kommer fra tabellen tblCustomer og det andet fra tabellen tblOrder:
Brug AS-operatoren til at definere tabelaliasser i FROM-delsætningen:
Du kan derefter bruge disse tabelaliasser i select-delsætningen på følgende måde:
|
Brug joinforbindelser til at kombinere par af poster fra to datakilder til et enkelt resultat eller til at angive, om poster fra en af tabellerne skal medtages, hvis der ikke er nogen tilsvarende post i den relaterede tabel. Sammenkæd 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:
|
Om brug af joinforbindelser
Der findes to typer joinforbindelser, indre og ydre joinforbindelser. Indre joinforbindelser 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 sammenkædede tabeller.
Ydre joinforbindelser angiver, om der skal medtages data, hvor der ikke findes nogen fælles værdi. Ydre joinforbindelser er retningsbestemt, hvilket betyder, at du kan angive, om du vil medtage alle posterne fra den første tabel, der er angivet i joinforbindelsen (kaldet en venstre joinforbindelse), eller om du vil medtage alle posterne fra den anden tabel i joinforbindelsen (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 joinforbindelser i en forespørgsel i Jointabeller og forespørgsler.
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 gemmes efternavne i et Efternavn-felt, så SQL-syntaksen ville være:
WHERE [LastName]='Bagel'
Brug WHERE-delsætningen også 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, er det kun, når aktivtypen i feltet Aktivtype i tabellen Aktiver har tallet 3 i feltet Antal i tabellen Medarbejdere, så ser din WHERE-delsætning sådan ud:
WHERE field1 LIKE field2
Vigtigt!: Du kan ikke angive kriterier for et felt, der bruges sammen med en aggregeringsfunktion i en WHERE-delsætning. I stedet skal du bruge en HAVING-delsætning til at angive kriterier for aggregerede felter.
Tilpasning med UNION-operatoren
Brug union-operatoren, når du vil have vist 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: eksklusive tilbud eller produkter eller tjenester, 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å denne 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 tilsvarende felter til ét outputfelt. Hvis du vil medtage 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 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 til at få vist et samlet resultat fra flere forespørgsler.