sql >> Databasteknik >  >> RDS >> SQLite

SQLite - Välj Data

För att välja data från en SQLite-databas, använd SELECT uttalande.

När du använder den här satsen anger du vilka tabeller du ska välja data från, samt kolumnerna som ska returneras från frågan.

Du kan också ange extra kriterier för att ytterligare begränsa den data som returneras.

Enkel SELECT Uttalande

Vi har redan använt en SELECT uttalande tidigare, när vi infogade data.

Uttalandet vi använde var detta:

SELECT * FROM Artists;

Detta är ganska självförklarande – det säger åt SQLite att välja alla kolumner från Artister tabell. Asterisken (* ) är ett förkortat sätt att säga "alla kolumner". Det sparar oss att skriva ut namnen på alla kolumner.

Därför returnerar den här frågan alla poster och alla kolumner. Så här:

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

Formatera

Låt oss formatera utdata så att våra resultat är lite lättare att läsa.

Använd kolumner

Du kan använda .mode för att ändra utgångsläget. Exemplet ovan använder .mode list , som visar resultaten som en lista.

Låt oss ändra läget för att använda kolumner.

.mode column

När du gör detta kan du behöva justera kolumnbredderna (alla data som är för breda för kolumnen kommer att trunkeras).

Justera kolumnbredder

För att justera kolumnbredderna, använd .width kommando, följt av bredder för varje kolumn.

Följande exempel ställer in den första kolumnen till 12 och den andra kolumnen till 20 .

.width 12 20

Lägg till rubriker

Du kan också använda .headers för att ange om kolumnrubriker ska visas eller inte.

För att visa rubriker, använd detta:

.headers on

Du kan ta bort dem med .headers off .

Visa inställningar

Du kan granska dessa och andra inställningar när som helst genom att skriva .show

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

Nytt format

Så här ser det föregående exemplet ut med kolumn- och rubrikläge:

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 

VAR Klausul

Du kan använda WHERE klausul för att begränsa resultaten. Klausulen låter dig ange specifika kriterier som du ska tillämpa på frågan.

Du kan till exempel ange att endast poster där ett visst fält innehåller ett visst värde ska returneras.

Här är ett mycket specifikt exempel. Den anger att endast posten med ett ArtistId lika med 6 ska returneras:

SELECT * FROM Artists
WHERE ArtistId = 6;

Resultat:

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

För att hitta alla artister vars namn börjar med bokstaven "S", kan du göra så här:

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

Resultat:

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

Procenttecknet (% ) är ett jokertecken som kan användas för att ange vilket tecken som helst. Så i det här exemplet specificerar vi att artistens namn måste vara som det här mönstret (dvs mönstret som börjar med bokstaven S och följer med någon annan karaktär).

Ett annat exempel på att använda WHERE sats är att hämta en rad värden. Till exempel kan vi leta efter poster där värdet är mindre än ett tal, större än ett tal eller inom ett visst intervall.

Här är ett exempel på att bara välja de poster med ett ArtistId mindre än ett 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 

Här är ett exempel på att bara välja de poster med ett ArtistId inom ett visst intervall:

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   

Välja kolumner

Du kan ange att endast vissa kolumner returneras i resultatuppsättningen. Skriv helt enkelt kolumnnamnen i frågan. Flera kolumnnamn måste separeras med ett kommatecken.

Det är bra att välja endast de kolumner du behöver. Använder * , även om det är bekvämt, kan det orsaka extra omkostnader om det returnerar fler kolumner än vad som krävs.

Så låt oss köra samma fråga igen, men den här gången väljer du bara Artistnamn kolumn:

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 använda ORDER BY klausul för att begränsa antalet poster som returneras.

Du kan lägga till ASC för stigande ordning, eller DESC för fallande ordning. Om du inte lägger till något kommer den att använda stigande.

Här sorterar vi efter ArtistName fält i stigande ordning:

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  

Och om vi byter till fallande ordning:

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 använda LIMIT klausul för att begränsa antalet poster som returneras. Detta kan vara praktiskt om din tabell innehåller ett stort antal poster men du bara vill se en handfull.

Här begränsar vi rekordet till endast 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. Android SQLite databas och app uppdatering

  2. Hur deklarerar man indata-utgångsparametrar i lagrad procedur/funktion i SQL Server?

  3. PostgreSQL v13 distribution och skalning med ClusterControl 1.8.2

  4. MIN() – Hitta minimivärdet i en kolumn i MySQL