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
FROM
klausul. Bemærk, at du kan have mere end én tabel iFROM
klausul. Vi vil diskutere det i det efterfølgende selvstudie. - For det andet skal du angive en kolonne eller en liste over kommaseparerede kolonner i
SELECT
klausul.
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.