Oversigt :i denne vejledning lærer du, hvordan du bruger SQLite SELECT sætning for at forespørge data fra en enkelt tabel.
SELECT sætning er en af de mest brugte sætninger i SQL. SQLite SELECT sætningen indeholder alle funktioner i SELECT sætning i SQL-standard.
Simpel brug af SELECT erklæring
Du kan bruge SELECT sætning for at udføre en simpel beregning som følger:
SELECT 1 + 1;Code language: SQL (Structured Query Language) (sql) Prøv det
Du kan bruge flere udtryk i SELECT erklæring som følger:
SELECT
10 / 5,
2 * 4 ;Code language: SQL (Structured Query Language) (sql) Prøv det
Forespørgsel efter data fra en tabel ved hjælp af SELECT erklæring
Vi bruger ofte SELECT sætning for at forespørge data fra en eller flere tabeller. Syntaksen for SELECT erklæringen er som følger:
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 sætning er den mest komplekse sætning i SQLite. For at gøre det lettere at forstå hver del, vil vi bryde SELECT erklæring i flere letforståelige selvstudier.
- Brug ORDER BY-sætning til at sortere resultatsættet
- Brug DISTINCT-sætning til at forespørge på unikke rækker i en tabel
- Brug WHERE-sætning til at filtrere rækker i resultatsættet
- Brug LIMIT OFFSET-sætninger til at begrænse antallet af returnerede rækker
- Brug INNER JOIN eller LEFT JOIN til at forespørge data fra flere tabeller ved hjælp af join.
- Brug GROUP BY for at få grupperækkerne i grupper og anvende aggregeret funktion for hver gruppe.
- Brug HAVING-sætning til at filtrere grupper
I denne vejledning vil vi fokusere på den enkleste form for SELECT sætning, der giver dig mulighed for at forespørge data fra en enkelt tabel.
SELECT column_list
FROM table;Code language: SQL (Structured Query Language) (sql)
Selvom SELECT klausulen vises før FROM klausul, evaluerer SQLite FROM først klausulen og derefter SELECT klausul, derfor:
- Først skal du angive den tabel, hvorfra du vil hente data i
FROMklausul. Bemærk, at du kan have mere end én tabel iFROMklausul. Vi vil diskutere det i det efterfølgende selvstudie. - For det andet skal du angive en kolonne eller en liste over kommaseparerede kolonner i
SELECTklausul.
Du bruger semikolon (;) til at afslutte sætningen.
SQLite SELECT eksempler
Lad os tage et kig på tracks tabel i eksempeldatabasen.
tracks tabel indeholder kolonner og rækker. Det ligner et regneark.
For at få data fra sportabellen, såsom trackid, spornavn, komponist og enhedspris, bruger du følgende sætning:
SELECT
trackid,
name,
composer,
unitprice
FROM
tracks;Code language: SQL (Structured Query Language) (sql) Prøv det
Du angiver en liste kolonnenavne, som du ønsker at få data, i SELECT klausul og tracks tabellen i FROM klausul. SQLite returnerer følgende resultat:
For at få data fra alle kolonner skal du angive kolonnerne for tracks tabellen i SELECT klausul som følger:
SELECT
trackid,
name,
albumid,
mediatypeid,
genreid,
composer,
milliseconds,
bytes,
unitprice
FROM
tracks;Code language: SQL (Structured Query Language) (sql) Prøv det
For en tabel med mange kolonner ville forespørgslen være så lang, at det tager tid at skrive. For at undgå dette kan du bruge stjernen (*), som er en forkortelse for alle kolonner i tabellen som følger:
SELECT * FROM tracks;Code language: SQL (Structured Query Language) (sql) Prøv det
Forespørgslen er kortere og renere nu.
Dog...
Du bør kun bruge stjernen (*) til testformål, ikke i den rigtige applikationsudvikling.
Fordi...
Når du udvikler en applikation, bør du kontrollere, hvad SQLite returnerer til din applikation. Antag, at en tabel har 3 kolonner, og du bruger stjernen (*) til at hente data fra alle tre kolonner.
Hvad hvis nogen fjerner en kolonne, ville din applikation ikke fungere korrekt, fordi den antager, at der returneres tre kolonner, og logikken til at behandle disse tre kolonner ville være brudt.
Hvis nogen tilføjer flere kolonner, fungerer din applikation muligvis, men den får flere data end nødvendigt, hvilket skaber flere I/O-overhead mellem databasen og applikationen.
Så prøv at undgå at bruge stjernen (*) som en god vane, når du bruger SELECT erklæring.
I denne øvelse har du lært, hvordan du bruger en simpel form af SQLite SELECT sætning for at forespørge data fra en enkelt tabel.