Redigera SQL-uttryck för att skärpa frågeresultat

Redigera SQL-uttryck för att skärpa frågeresultat

Viktigt!: Den här artikeln är maskinöversatt, se ansvarsfriskrivningen. Den engelska versionen av den här artikeln finns här för din referens.

Om en fråga inte ger det resultat som du vill ha kan du lägga till några enkla SQL-uttryck för att fokusera resultatet. Vi ska nu titta närmare på några olika typer av SQL-uttryck samt de satser eller delar som du kan behöva redigera för att nå önskat resultat.

Obs!: Den här artikeln gäller inte för Access-webbappar – den sortens databas som du utformar med Access och publicerar online. Mer information finns i Skapa en Access-app.

Artikelinnehåll

Skapa ett Select-uttryck

Anpassa SELECT-satsen

Anpassa FROM-satsen

Anpassa WHERE-satsen

Anpassa med operatorn UNION

Skapa ett SELECT-uttryck

Ett SQL-uttryck av typen SELECT består av två eller tre satser. SELECT-satserna talar om för databasen var sökningen efter datauppgifterna ska ske och ber den att returnera ett visst resultat.

Obs!: SELECT-uttryck slutar alltid med ett semikolon (;) som antingen är placerat sist i den sista satsen eller i en egen rad i slutet av SQL-uttrycket.

Följande SELECT-uttryck ber Access att hämta information från kolumnerna E-postadress och Företag i tabellen Kontakter, där "Seattle" står i kolumnen Ort.

SQL-objektfliken med ett SELECT-uttryck

Ovanstående fråga innehåller tre satser: SELECT, FROM och WHERE.

1. SELECT-satsen: Visar de kolumner som innehåller de data som du vill använda. Satsen innehåller en operator (SELECT) som följs av två identifierare (E-postadress och Företag). Om en identifierare innehåller blanksteg eller specialtecken (som "E-postadress") bör du sätta hakparenteser runt identifieraren.

2. FROM-satsen: Identifierar källtabellen. I det aktuella exemplet innehåller satsen en operator (FROM) som följs av en identifierare (Kontakter).

3. WHERE-satsen: En valfri sats. I exemplet innehåller satsen en operator (WHERE) som följs av ett uttryck (Ort="Seattle").

Mer information om urvalsfrågor finns Skapa en enkel urvalsfråga.

Här följer en lista över vanliga SQL-satser:

SQL-sats

Funktion

Obligatoriskt ?

SELECT

Visar de fält som innehåller de data som du är intresserad av.

Ja

FROM

Visar de tabeller som innehåller de fält som anges i SELECT-satsen.

Ja

WHERE

Anger vilka fältvillkor som måste uppfyllas av en post för att posten ska tas med i resultatet.

Nej

ORDER BY

Anger hur resultatet ska sorteras.

Nej

GROUP BY

Visar fält som inte sammanfattas i SELECT-satsen i SQL-uttryck som innehåller mängdfunktioner.

Endast om den typen av fält förekommer

HAVING

Anger vilka villkor som gäller för fält som sammanfattas i SELECT-satsen i SQL-uttryck som innehåller mängdfunktioner.

Nej

Alla SQL-satser består av termer. Här följer en lista över några vanliga SQL-termer.

SQL-term

Definition

Exempel

identifierare

Ett namn som du använder för att identifiera ett databasobjekt, till exempel kolumnnamnet.

[E-postadress] och Företag

Operator

Ett nyckelord som representerar eller modifierar en åtgärd.

AS

konstant

Ett värde som inte ändras, till exempel ett tal eller NULL.

42

uttryck

En kombination av identifierare, operatorer, konstanter och funktioner som returnerar ett enda värde.

>= Produkter.[Enhetspris]

Överst på sidan

Anpassa SELECT-satsen

Anpassa

Exempel

Om du endast vill se enskilda värden.

Använd nyckelordet DISTINCT i SELECT-satsen.

Om dina kunder exempelvis finns på flera olika kontor, men några har samma telefonnummer och du bara vill se varje telefonnummer en gång, ser SELECT-satsen ut på följande sätt:

SELECT DISTINCT [txtCustomerPhone] 

Om du vill ändra hur en identifierare visas i databladsvyn, för att förbättra läsbarheten.

Använd operatorn AS (ett nyckelord som representerar eller modifierar en åtgärd) tillsammans med ett fältalias i SELECT-satsen. Ett fältalias är ett namn som du tilldelar ett fält för att det ska bli lättare att läsa resultatet.

SELECT [txtCustPhone] AS [Customer Phone]

Anpassa FROM-satsen

Anpassa

Exempel

Du kan använda ett tabellalias eller ett annat namn som du tilldelar en tabell i ett SELECT-uttryck. Det är praktiskt med ett tabellalias om tabellnamnet är långt, särskilt om det finns flera fält med samma namn i flera olika tabeller.

Så här väljer du data från två fält, båda med namnet ID, där det ena kommer från tabellen tblKund och det andra från tblOrdning:

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

Du kan använda operatorn AS för att definiera olika tabellalias i FROM-satsen:

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

Sedan kan du använda tabellaliasen i SELECT-satsen på följande sätt:

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

Du kan använda kopplingar för att kombinera postpar från två datakällor till ett enda resultat, eller för att ange om poster från endera tabellen ska tas med om det inte finns någon motsvarande post i den relaterade tabellen.

Koppla tabellerna så att objekt från tabellerna kombineras i frågan, och så att objekt utesluts om det inte finns motsvarande poster i den andra tabellen.

Så här kan FROM-satsen se ut:

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

Använda kopplingar

Det finns två typer av kopplingar: inre och yttre. Inre kopplingar är vanligare i frågor. När du kör en fråga med en inre koppling visas endast objekt som har ett gemensamt värde i båda de kopplade tabellerna.

Yttre kopplingar anger om data som saknar gemensamma värden ska tas med i resultatet. Yttre kopplingar är riktningskopplingar, vilket betyder att du kan ange om alla poster från den första tabellen i kopplingen ska tas med (så kallad vänsterkoppling), eller om alla poster från den andra tabellen i kopplingen ska tas med (så kallad högerkoppling). En yttre koppling har följande SQL-syntax:

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

Läs mer använda kopplingar i en fråga.

Överst på sidan

Anpassa WHERE-satsen

WHERE-satsen innehåller villkor som hjälper till att begränsa antalet poster som returneras i en fråga. Se exempel på frågevillkor och hur de fungerar.

Till exempel kan du anpassa den grundläggande WHERE-satsen så att den begränsar resultatet för en fråga. Anta exempelvis att du vill hitta telefonnumret till en kund, och att du bara kan komma ihåg kundens efternamn: Johansson. I det här fallet finns efternamnen sparade i fältet Efternamn, vilket betyder att SQL-syntaxen blir som följer:

WHERE [LastName]='Bagel'

Använda WHERE-sats även att kombinera datakällor för kolumner som har matchande data men olika datatyper. Detta är praktiskt eftersom du inte kan skapa en koppling mellan fält med olika datatyper. Använda ett fält som ett villkor för det andra fältet, med nyckelordet som . Till exempel om du vill använda data från en tabell tillgångar och anställda har när skriver du typ av tillgång i tillgången fält i tabellen tillgångar talet 3 i fältet Antal i tabellen anställda, här hur WHERE-sats skulle se ut:

WHERE field1 LIKE field2

Viktigt!:  Du kan inte ange villkor för ett fält som används med en mängdfunktion i en WHERE-sats. Vill du ange villkor för mängdfält använder du i stället en HAVING-sats.

Överst på sidan

Anpassa med hjälp av operatorn UNION

Du använder operatorn UNION om du vill visa en kombinerad vy med resultat från flera liknande urvalsfrågor. Till exempel kan databasen innehålla tabellerna Produkter och Tjänster, som i sin tur båda innehåller tre fält: Exklusivt erbjudande eller produkt eller tjänst, Pris samt Garanti. Basinformationen är densamma i garantifältet i båda tabellerna. Du kan använda en UNION-fråga för att kombinera de tre fälten från de bägge tabellerna på följande sätt:

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

När du kör frågan kombineras data från respektive uppsättning av motsvarande fält till ett enda utdatafält. Om du vill ta med eventuella dubblettrader i resultatet använder du operatorn ALL.

Obs!:  SELECT-uttrycket måste innehålla lika många utdatafält som tabellerna, de måste ligga i samma ordning och datatyperna måste vara desamma eller kompatibla. Vid UNION-frågor är datatyperna Number och Text kompatibla.

Mer information om unionsfrågor finns i använda en unionsfråga för att visa ett enhetligt resultat från flera frågor.

Överst på sidan

Obs!: Ansvarsfriskrivning för maskinöversättning: Den här artikeln har översatts av ett datorsystem utan mänsklig inblandning. Microsoft erbjuder dessa maskinöversättningar för att hjälpa icke engelskspråkiga användare att ta del av information om Microsofts produkter, tjänster och tekniker. Eftersom artikeln är maskinöversatt kan den innehålla fel i ordval, syntax och grammatik.

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×