Hvis spørringene ikke fungerer hardt nok, kan du legge til noen grunnleggende SQL-setninger for å fokusere resultatene. La oss se på noen typer SQL-setninger og setninger eller deler du kan redigere for å få resultatene du ønsker.
I denne artikkelen
- Create a Select, setning
- Tilpasse SELECT-setningen
- Tilpasse FROM-setningsdelen
- Tilpasse WHERE-setningen
- Tilpasse med UNION-operatoren
Create a Select, setning
En SQL select-setning har to til tre setninger. SELECT-setningen forteller databasen hvor den skal lete etter data, og ber den om å returnere et bestemt resultat.
Obs!
SELECT-setninger slutter alltid med et semikolon (;) enten på slutten av den siste setningen eller på en linje for seg selv på slutten av SQL-setningen.
Følgende SELECT-setning 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) fulgt av to identifikatorer (E-postadresse og Firma). Hvis en identifikator inneholder mellomrom eller spesialtegn (for eksempel «E-postadresse»), må du sette identifikatoren i hakeparenteser.
2. FROM-setningsdelen identifiserer kildetabellen. I dette eksemplet har den en operator (FROM) etterfulgt av en identifikator (Kontakter).
3. WHERE-setningen er en valgfri setningsdel. Eksemplet har en operator (HVOR) 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 | Hva den gjør | Obligatorisk? |
|---|---|---|
| SELECT | Viser feltene som inneholder data av interesse. | Ja |
| FROM | Viser tabellene som inneholder feltene som er oppført i SELECT-setningen. | Ja |
| WHERE | Angir feltvilkår som må oppfylles av hver post for å inkluderes i resultatene. | Nei |
| BESTILL INNEN | Angir hvordan resultatene skal sorteres. | Nei |
| GROUP BY | I et SQL-uttrykk som inneholder mengdefunksjoner, vises felt som ikke er summert i SELECT-setningen. | Bare hvis det finnes slike felt |
| HAVING | I en SQL-setning som inneholder mengdefunksjoner, angir vilkårene som gjelder for felt som er oppsummert i SELECT-setningen. | Nei |
Hver SQL-setning består av begreper. Her er en liste over noen vanlige SQL-begreper.
Tilpasse SELECT-setningen
| Tilpass | Eksempel |
|---|---|
| For å se bare de distinkte verdiene. Bruk nøkkelordet DISTINCT i SELECT-setningen. |
Hvis kundene for eksempel kommer fra flere forskjellige avdelingskontorer og noen har samme telefonnummer, og du bare ønsker å se et telefonnummer oppført én gang, vil SELECT-setningen være slik:SELECT DISTINCT [txtCustomerPhone] |
| Slik endrer du 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-setningen. Et feltalias er et navn som du tilordner til et felt for å gjøre det enklere å lese resultatene. |
SELECT [txtCustPhone] AS [Customer Phone] |
Tilpasse FROM-setningsdelen
| Tilpass | Eksempel |
|---|---|
| Du kan bruke et tabellalias eller et annet navn som du tilordner til en tabell i en SELECT-setning. Et tabellalias er nyttig hvis navnet på tabellnavnet er langt, spesielt når du har flere felt som har samme navn fra forskjellige tabeller. | Slik velger du data fra to felt som begge heter ID, og det ene kommer fra tabellen tblKunde og det andre fra tabellen tblOrdre: VELG [tblKunde]. [ID], [tblOrder]. [ID] Bruk AS-operatoren til å definere aliaser i FROM-setningen: FROM [tblKunde] 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 poster fra to datakilder til ett enkelt resultat, eller til å angi om poster fra den ene av tabellene skal inkluderes hvis det ikke finnes noen samsvarende post i den relaterte tabellen. Slå sammen tabellene slik at spørringen kombinerer elementene fra tabellene og utelater elementer når det ikke finnes noen samsvarende post i den andre tabellen |
Slik kan FROM-setningsdelen se ut:FROM [tblCustomer] INNER JOIN [tblOrder] PÅ [tblKunde]. [CustomerID]=[tblOrder]. [KundeID] |
Om å bruke sammenføyninger
Det finnes to sammenføyningstyper, indre og ytre sammenføyninger. Indre sammenføyninger er vanligere 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 koblinger angir om data uten noen felles verdi skal inkluderes. Ytre sammenføyninger er retningsbestemte, det vil si at du kan spesifisere om alle postene fra den første tabellen angitt i sammenføyningen (kalt venstre sammenføyning) skal inkluderes, eller om alle postene fra den andre tabellen i sammenføyningen (kalt høyre sammenføyning) skal inkluderes. 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-setningen
WHERE-setningen inneholder vilkår som bidrar til å begrense antallet 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-setningen er å begrense resultatene av en spørring. La oss si at du vil finne telefonnummeret til en kunde, og at du bare kan huske etternavnet hans som Bagel. I dette eksemplet er etternavnene lagret i et LastName-felt, slik at SQL-syntaksen vil være:
WHERE [LastName]='Bagel'
Bruk WHERE-setningen også til å kombinere datakilder for kolonner som har samsvarende data, men forskjellige datatyper. Dette er nyttig siden du ikke kan opprette en kobling 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 Aktiva-tabellene og Ansatte-tabellene, bare når aktivatypen i aktivatypefeltet i Aktiva-tabellen har tallet 3 i Antall-feltet i Ansatte-tabellen, vil WHERE-setningen se slik ut:
WHERE field1 LIKE field2
Viktig
Du kan ikke angi vilkår for et felt som brukes med en mengdefunksjon i en WHERE-setning. I stedet kan bruke du en HAVING-setning til å angi vilkår for mengdefeltene.
Tilpasse med UNION-operatoren
Bruk UNION-operatoren når du vil se en kombinert visning av resultater fra flere like utvalgsspørringer. Hvis databasen for eksempel har tabellene Produkter og Tjenester, og begge har tre felt: eksklusivt tilbud eller produkt eller tjeneste, pris, garanti eller garanti. Selv om Produkter-tabellen lagrer garantiinformasjon og Service-tabellen lagrer garantiinformasjon, er den grunnleggende informasjonen den samme. Du kan bruke en unionsspørring til å kombinere de tre feltene fra de to tabellene slik:
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 i ett utdatafelt. Hvis du vil inkludere eventuelle dupliserte rader i resultatene, bruker du ALL-operatoren.
Obs!
Select-uttrykket må ha samme antall utdatafelt, i samme rekkefølge og med samme eller kompatible datatyper. 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 samlet resultat fra flere spørringer.