sql >> Database teknologi >  >> RDS >> SQLite

SQLite - Vælg Data

For at vælge data fra en SQLite-database skal du bruge SELECT erklæring.

Når du bruger denne sætning, angiver du, hvilke tabeller der skal vælges data fra, samt hvilke kolonner der skal returneres fra forespørgslen.

Du kan også angive ekstra kriterier for yderligere at indsnævre de data, der returneres.

Simpel SELECT Erklæring

Vi har allerede brugt en SELECT erklæring tidligere, da vi indsatte data.

Udsagnet, vi brugte, var dette:

SELECT * FROM Artists;

Dette er ret selvforklarende - det fortæller SQLite at vælge alle kolonner fra Kunstnere bord. Stjernen (* ) er en kortfattet måde at sige "alle kolonner". Det sparer os for at skrive navnene på alle kolonnerne.

Derfor returnerer denne forespørgsel alle poster og alle kolonner. Sådan:

1|Joe Satriani
2|Steve Vai
3|The Tea Party
4|Noiseworks
5|Wayne Jury
6|Mr Percival
7|Iron Maiden
8|Atmasphere
9|Ian Moss
10|Magnum
11|Strapping Young Lad
12|Slayer
13|Primus
14|Pat Metheny
15|Frank Gambale
16|Frank Zappa
17|The Wiggles

Formattering

Lad os formatere outputtet, så vores resultater er lidt nemmere at læse.

Brug kolonner

Du kan bruge .mode for at ændre udgangstilstanden. Ovenstående eksempel bruger .mode list , som viser resultaterne som en liste.

Lad os ændre tilstanden for at bruge kolonner.

.mode column

Når du gør dette, skal du muligvis justere kolonnebredderne (alle data, der er for brede til kolonnen, vil blive afkortet).

Juster kolonnebredder

For at justere kolonnebredderne skal du bruge .width kommando efterfulgt af bredder for hver kolonne.

Følgende eksempel indstiller den første kolonne til 12 og den anden kolonne til 20 .

.width 12 20

Tilføj overskrifter

Du kan også bruge .headers for at angive, om kolonneoverskrifter skal vises eller ej.

Brug denne for at vise overskrifter:

.headers on

Du kan fjerne dem med .headers off .

Vis indstillinger

Du kan til enhver tid gennemgå disse og andre indstillinger ved at skrive .show

sqlite> .show
     echo: off
      eqp: off
  explain: off
  headers: on
     mode: column
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width: 12 20 

Nyt format

Sådan ser det forrige eksempel ud ved brug af kolonner og overskrifter:

ArtistId    ArtistName  
----------  ------------
1           Joe Satriani
2           Steve Vai   
3           The Tea Part
4           Noiseworks  
5           Wayne Jury  
6           Mr Percival 
7           Iron Maiden 
8           Atmasphere  
9           Ian Moss    
10          Magnum      
11          Strapping Yo
12          Slayer      
13          Primus      
14          Pat Metheny 
15          Frank Gambal
16          Frank Zappa 
17          The Wiggles 

HVOR Klausul

Du kan bruge WHERE klausul for at indsnævre resultaterne. Klausulen giver dig mulighed for at angive specifikke kriterier, som skal gælde for forespørgslen.

For eksempel kan du angive, at kun poster, hvor et bestemt felt indeholder en bestemt værdi, skal returneres.

Her er et meget specifikt eksempel. Det specificerer, at kun posten med et ArtistId lig med 6 skal returneres:

SELECT * FROM Artists
WHERE ArtistId = 6;

Resultat:

ArtistId      ArtistName          
------------  --------------------
6             Mr Percival   

For at finde alle kunstnere, hvis navn begynder med bogstavet "S", kan du gøre dette:

SELECT * FROM Artists
WHERE ArtistName LIKE 'S%';

Resultat:

ArtistId      ArtistName          
------------  --------------------
2             Steve Vai           
11            Strapping Young Lad 
12            Slayer     

Procenttegnet (% ) er et jokertegn, der kan bruges til at angive et hvilket som helst tegn. Så i dette eksempel specificerer vi, at kunstnerens navn skal være som dette mønster (dvs. mønsteret, der starter med bogstavet S og følger med ethvert andet tegn).

Et andet eksempel på brug af WHERE klausul er at hente en række værdier. For eksempel kunne vi lede efter poster, hvor værdien er mindre end et tal, større end et tal eller inden for et bestemt interval.

Her er et eksempel på kun at vælge de poster med et ArtistId mindre end et tal:

SELECT * FROM Artists
WHERE ArtistId < 6;

Resultat:

ArtistId      ArtistName          
------------  --------------------
1             Joe Satriani        
2             Steve Vai           
3             The Tea Party       
4             Noiseworks          
5             Wayne Jury 

Her er et eksempel på kun at vælge de poster med et ArtistId inden for et bestemt interval:

SELECT * FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Resultat:

ArtistId      ArtistName          
------------  --------------------
5             Wayne Jury          
6             Mr Percival         
7             Iron Maiden         
8             Atmasphere          
9             Ian Moss            
10            Magnum   

Valg af kolonner

Du kan angive, at kun bestemte kolonner returneres i resultatsættet. Du skal blot skrive kolonnenavnene i forespørgslen. Flere kolonnenavne skal adskilles med et komma.

Det er god praksis kun at vælge de kolonner, du har brug for. Brug af * Selvom det er praktisk, kan det forårsage ekstra overhead, hvis det returnerer flere kolonner end nødvendigt.

Så lad os køre den samme forespørgsel igen, men denne gang skal du kun vælge Kunstnernavn kolonne:

SELECT ArtistName FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Resultat:

ArtistName  
------------
Wayne Jury  
Mr Percival 
Iron Maiden 
Atmasphere  
Ian Moss    
Magnum 

ORDER BY Klausul

Du kan bruge ORDER BY klausul for at begrænse antallet af returnerede poster.

Du kan tilføje ASC for stigende rækkefølge, eller DESC for faldende rækkefølge. Hvis du ikke tilføjer noget, vil den bruge stigende.

Her sorterer vi efter ArtistName felt i stigende rækkefølge:

SELECT * FROM Artists
ORDER BY ArtistName;

Resultat:

ArtistId      ArtistName          
------------  --------------------
8             Atmasphere          
15            Frank Gambale       
16            Frank Zappa         
9             Ian Moss            
7             Iron Maiden         
1             Joe Satriani        
10            Magnum              
6             Mr Percival         
4             Noiseworks          
14            Pat Metheny         
13            Primus              
12            Slayer              
2             Steve Vai           
11            Strapping Young Lad 
3             The Tea Party       
17            The Wiggles         
5             Wayne Jury  

Og hvis vi skifter til faldende rækkefølge:

SELECT * FROM Artists
ORDER BY ArtistName DESC;

Resultat:

ArtistId      ArtistName          
------------  --------------------
5             Wayne Jury          
17            The Wiggles         
3             The Tea Party       
11            Strapping Young Lad 
2             Steve Vai           
12            Slayer              
13            Primus              
14            Pat Metheny         
4             Noiseworks          
6             Mr Percival         
10            Magnum              
1             Joe Satriani        
7             Iron Maiden         
9             Ian Moss            
16            Frank Zappa         
15            Frank Gambale       
8             Atmasphere  

LIMIT Klausul

Du kan bruge LIMIT klausul for at begrænse antallet af returnerede poster. Dette kan være praktisk, hvis din tabel indeholder et stort antal poster, men du kun ønsker at se en håndfuld.

Her begrænser vi rekorden til kun fem poster:

SELECT * FROM Artists LIMIT 5;

Resultat:

ArtistId      ArtistName          
------------  --------------------
1             Joe Satriani        
2             Steve Vai           
3             The Tea Party       
4             Noiseworks          
5             Wayne Jury 

  1. Hvordan henter jeg alle rækkerne i min DB?

  2. Sådan importeres en SQL Server-database til Access 2016

  3. Aktiver Entity Framework 6 for MySql (C#) i WinForms af Microsoft Visual Studio 2013

  4. Hvordan søger man efter skråstreg (\) i MySQL? og hvorfor escape (\) ikke påkrævet for hvor (=), men for Like er påkrævet?