Sammanfattning :i den här handledningen kommer du att lära dig hur du använder SQLite SELECT
uttalande för att fråga data från en enda tabell.
SELECT
sats är en av de mest använda satserna i SQL. SQLite SELECT
-satsen tillhandahåller alla funktioner i SELECT
uttalande i SQL-standard.
Enkla användningar av SELECT
uttalande
Du kan använda SELECT
för att utföra en enkel beräkning enligt följande:
SELECT 1 + 1;
Code language: SQL (Structured Query Language) (sql)
Prova det
Du kan använda flera uttryck i SELECT
uttalande enligt följande:
SELECT
10 / 5,
2 * 4 ;
Code language: SQL (Structured Query Language) (sql)
Prova det
Fråga data från en tabell med SELECT
uttalande
Vi använder ofta SELECT
uttalande för att fråga data från en eller flera tabeller. Syntaxen för SELECT
uttalandet är som följer:
SELECT DISTINCT column_list
FROM table_list
JOIN table ON join_condition
WHERE row_filter
ORDER BY column
LIMIT count OFFSET offset
GROUP BY column
HAVING group_filter;
Code language: SQL (Structured Query Language) (sql)
SELECT
sats är den mest komplexa satsen i SQLite. För att göra det lättare att förstå varje del kommer vi att bryta SELECT
uttalande till flera lättförståeliga tutorials.
- Använd ORDER BY-satsen för att sortera resultatuppsättningen
- Använd DISTINCT-satsen för att fråga efter unika rader i en tabell
- Använd WHERE-satsen för att filtrera rader i resultatuppsättningen
- Använd LIMIT OFFSET-satser för att begränsa antalet returnerade rader
- Använd INNER JOIN eller LEFT JOIN för att söka efter data från flera tabeller med join.
- Använd GROUP BY för att få gruppraderna i grupper och tillämpa aggregatfunktion för varje grupp.
- Använd HAVING-satsen för att filtrera grupper
I den här handledningen kommer vi att fokusera på den enklaste formen av SELECT
sats som låter dig fråga data från en enda tabell.
SELECT column_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
Även om SELECT
satsen visas före FROM
sats, utvärderar SQLite FROM
först och sedan SELECT
klausul, därför:
- Först, ange tabellen varifrån du vill hämta data i
FROM
klausul. Observera att du kan ha mer än en tabell iFROM
klausul. Vi kommer att diskutera det i den efterföljande handledningen. - För det andra, ange en kolumn eller en lista med kommaseparerade kolumner i
SELECT
klausul.
Du använder semikolon (;) för att avsluta satsen.
SQLite SELECT
exempel
Låt oss ta en titt på tracks
tabell i exempeldatabasen.
tracks
Tabellen innehåller kolumner och rader. Det ser ut som ett kalkylblad.
För att få data från spårtabellen som trackid, spårnamn, kompositör och enhetspris använder du följande uttalande:
SELECT
trackid,
name,
composer,
unitprice
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Prova det
Du anger en lista kolumnnamn, som du vill få data, i SELECT
satsen och tracks
tabellen i FROM
klausul. SQLite returnerar följande resultat:
För att få data från alla kolumner anger du kolumnerna för tracks
tabellen i SELECT
klausul enligt följande:
SELECT
trackid,
name,
albumid,
mediatypeid,
genreid,
composer,
milliseconds,
bytes,
unitprice
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Prova det
För en tabell med många kolumner skulle frågan vara så lång att det tar tid att skriva. För att undvika detta kan du använda asterisken (*), som är förkortningen för alla kolumner i tabellen enligt följande:
SELECT * FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Prova det
Frågan är kortare och renare nu.
Men...
Du bör endast använda asterisken (*) för testsyftet, inte i den verkliga applikationsutvecklingen.
För att...
När du utvecklar en applikation bör du kontrollera vad SQLite returnerar till din applikation. Anta att en tabell har tre kolumner och att du använder asterisken (*) för att hämta data från alla tre kolumner.
Tänk om någon tar bort en kolumn, din applikation skulle inte fungera korrekt, eftersom den förutsätter att det finns tre kolumner som returneras och logiken för att bearbeta dessa tre kolumner skulle vara bruten.
Om någon lägger till fler kolumner kan din applikation fungera men den får mer data än vad som behövs, vilket skapar mer I/O-overhead mellan databasen och applikationen.
Så försök att undvika att använda asterisken (*) som en god vana när du använder SELECT
uttalande.
I den här handledningen har du lärt dig hur du använder en enkel form av SQLite SELECT
uttalande för att fråga data från en enda tabell.