Hvis spørringene ikke fungerer hardt nok, kan det å legge til noen grunnleggende SQL setninger bidra til å fokusere resultatene. La oss se på noen få typer SQL-setninger og setninger eller deler som du kan redigere for å få resultatene du ønsker.
Obs!: Denne artikkelen gjelder ikke for Access Web Apps – den typen databaser du utformer med Access og publiserer på nettet.
I denne artikkelen
Opprett en Select-setning
En SQL-utvalgssetning har to til tre setninger. SELECT-setningen forteller databasen hvor dataene skal lete, og ber den om å returnere et bestemt resultat.
Obs!: SELECT-setninger slutter alltid med semikolon (;) enten på slutten av den siste setningen eller på en linje alene på slutten av SQL-setningen.
Følgende utvalgssetning ber Access om å få informasjon fra kolonnene E-postadresse og Firma, fra Kontakter-tabellen, spesielt der den finner «Seattle» i By-kolonnen.
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) etterfulgt av to identifikatorer (E-postadresse og firma). Hvis en identifikator har mellomrom eller spesialtegn (for eksempel «E-postadresse»), omslutter du identifikatoren i hakeparenteser.
2. FROM-setningsdelen identifiserer kildetabellen. I dette eksemplet har den en operator (FROM) etterfulgt av en identifikator (Kontakter).
3. WHERE-setningsdelen er en valgfri setning. Eksemplet har en operator (WHERE) 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 |
Dette gjør den |
Obligatorisk ? |
SELECT |
Viser feltene som inneholder interessante data. |
Ja |
FROM |
Viser 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 |
BESTILL ETTER |
Angir hvordan resultatene skal sorteres. |
Nei |
GROUP BY |
I en SQL-setning som inneholder mengdefunksjoner, vises felt som ikke er oppsummert i SELECT-setningen. |
Bare hvis det finnes slike felt |
HAVING |
I en SQL-setning som inneholder mengdefunksjoner, angir du betingelser som gjelder for felt som summeres i SELECT-setningen. |
Nei |
Hver SQL-setning består av termer. Her er en liste over noen vanlige SQL-termer.
SQL-term |
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 til én enkelt verdi. |
>= Produkter. [Enhetspris] |
Tilpasse SELECT-setningsdelen
Tilpass |
Eksempel |
Hvis du bare vil se de distinkte verdiene. Bruk NØKKELORDET DISTINCT i SELECT-setningsdelen. |
Hvis kundene for eksempel er fra flere forskjellige avdelingskontorer og noen har samme telefonnummer, og du bare vil se et telefonnummer oppført én gang, vil SELECT-setningen være slik:
|
Hvis du vil endre 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-setningsdelen. Et feltalias er et navn du tilordner til et felt for å gjøre resultatene enklere å lese. |
|
Tilpasse FROM-setningsdelen
Tilpass |
Eksempel |
Du kan bruke et tabellalias eller et annet navn som du tilordner til en tabell i en utvalgssetning. Et tabellalias er nyttig hvis navnet på tabellnavnet er langt, spesielt når du har flere felt som har samme navn fra forskjellige tabeller. |
For å velge data fra to felt, begge kalt ID, hvorav den ene kommer fra tabellen tblKunde og den andre fra tabellen tblOrder:
Bruk AS-operatoren til å definere tabellaliaser i FROM-setningsdelen:
Du kan deretter bruke disse tabellaliasene i SELECT-setningsdelen, som følger:
|
Bruk sammenføyninger til å kombinere poster fra to datakilder til ett enkelt resultat, eller til å angi om poster fra en av tabellene skal inkluderes hvis det ikke finnes noen tilsvarende post i den relaterte tabellen. Føy sammen tabellene slik at spørringen kombinerer elementene fra tabellene, og utelater elementer når det ikke finnes noen tilsvarende post i den andre tabellen |
Slik kan FROM-setningsdelen se ut:
|
Bruke sammenføyninger
Det finnes to typer sammenføyninger, indre og ytre sammenføyninger. Indre sammenføyninger er mer vanlig 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 sammenføyninger angir om data skal inkluderes der det ikke finnes noen felles verdi. Ytre sammenføyninger er retningsvise, noe som betyr at du kan angi om du vil inkludere alle postene fra den første tabellen som er angitt i sammenføyningen (kalt en venstre sammenføyning), eller om du vil inkludere alle postene fra den andre tabellen i sammenføyningen (kalt en høyre sammenføyning). 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.
Tilpasse WHERE-setningsdelen
WHERE-setningen 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 resultatene av en spørring. La oss si at du vil finne telefonnummeret til en kunde, og kan bare huske etternavnet hans som Bagel. I dette eksemplet lagres etternavnene i et Etternavn-felt, så SQL-syntaksen vil være:
WHERE [LastName]='Bagel'
Bruk WHERE-setningen også til å kombinere datakilder for kolonner som har samsvarende data, men ulike datatyper. Dette er nyttig fordi du ikke kan opprette en sammenføyning 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 en Aktiva-tabell og Ansatte-tabell, bare når aktivatypen i aktivatypefeltet i Aktiva-tabellen har tallet 3 i Antall-feltet i Ansatte-tabellen, vil WHERE-setningsdelen se 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 kan bruke du en HAVING-setning til å angi vilkår for mengdefeltene.
Tilpassing med UNION-operatoren
Bruk UNION-operatoren når du vil se en kombinert visning av resultater fra flere lignende utvalgsspørringer. Hvis databasen for eksempel har en produkttabell og en tjenestetabell, og begge har tre felt: eksklusivt tilbud eller produkt eller service, pris, garanti eller garanti. Selv om Produkter-tabellen lagrer garantiinformasjon, og Services-tabellen lagrer garantiinformasjon, er den grunnleggende informasjonen den samme. Du kan bruke en unionsspørring til å kombinere de tre feltene fra de to tabellene som dette:
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 dupliserte rader i resultatene, bruker du ALL-operatoren.
Obs!: Select-setningen må ha samme antall utdatafelt, i samme rekkefølge og med de samme eller kompatible datatypene. 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 enhetlig resultat fra flere spørringer.