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

SQLite - Seleziona Dati

Per selezionare i dati da un database SQLite, usa il SELECT dichiarazione.

Quando utilizzi questa istruzione, specifichi da quale tabella/e selezionare i dati, nonché le colonne da restituire dalla query.

Puoi anche fornire criteri aggiuntivi per restringere ulteriormente i dati restituiti.

Semplice SELECT Dichiarazione

Abbiamo già utilizzato un SELECT istruzione precedente, quando abbiamo inserito i dati.

La dichiarazione che abbiamo usato era questa:

SELECT * FROM Artists;

Questo è abbastanza autoesplicativo:sta dicendo a SQLite di selezionare tutte le colonne da Artisti tavolo. L'asterisco (* ) è un modo abbreviato per dire "tutte le colonne". Ci evita di scrivere i nomi di tutte le colonne.

Pertanto, questa query restituisce tutti i record e tutte le colonne. In questo modo:

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

Formattazione

Formattiamo l'output in modo che i nostri risultati siano un po' più facili da leggere.

Usa colonne

Puoi usare .mode per cambiare la modalità di uscita. L'esempio sopra usa .mode list , che mostra i risultati come un elenco.

Cambiamo la modalità di utilizzo delle colonne.

.mode column

Quando si esegue questa operazione, potrebbe essere necessario regolare le larghezze delle colonne (tutti i dati troppo larghi per la colonna verranno troncati).

Regola la larghezza delle colonne

Per regolare le larghezze delle colonne, usa .width comando, seguito dalle larghezze per ogni colonna.

L'esempio seguente imposta la prima colonna su 12 e la seconda colonna a 20 .

.width 12 20

Aggiungi intestazioni

Puoi anche usare .headers per specificare se visualizzare o meno le intestazioni delle colonne.

Per visualizzare le intestazioni, usa questo:

.headers on

Puoi rimuoverli con .headers off .

Mostra impostazioni

Puoi rivedere queste e altre impostazioni in qualsiasi momento digitando .show

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

Nuovo formato

Ecco come appare l'esempio precedente utilizzando la modalità colonne e intestazioni:

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 

Il WHERE Clausola

Puoi usare il WHERE clausola per restringere i risultati. La clausola consente di stabilire criteri specifici per i quali applicare alla query.

Ad esempio, è possibile specificare che devono essere restituiti solo i record in cui un determinato campo contiene un determinato valore.

Ecco un esempio molto specifico. Specifica che solo il record con un ArtistId uguale a 6 deve essere restituito:

SELECT * FROM Artists
WHERE ArtistId = 6;

Risultato:

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

Per trovare tutti gli artisti il ​​cui nome inizia con la lettera "S", puoi fare questo:

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

Risultato:

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

Il segno di percentuale (% ) è un carattere jolly che può essere utilizzato per specificare qualsiasi carattere. Quindi, in questo esempio, stiamo specificando che il nome dell'artista deve essere come questo pattern (cioè il pattern che inizia con la lettera S e a seguire con qualsiasi altro carattere).

Un altro esempio di utilizzo di WHERE clausola è recuperare un intervallo di valori. Ad esempio, potremmo cercare record in cui il valore è minore di un numero, maggiore di un numero o entro un determinato intervallo.

Ecco un esempio di selezione solo dei record con un ArtistId meno di un numero:

SELECT * FROM Artists
WHERE ArtistId < 6;

Risultato:

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

Ecco un esempio di selezione solo dei record con un ArtistId entro un certo intervallo:

SELECT * FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Risultato:

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

Selezione delle colonne

È possibile specificare che nel set di risultati vengano restituite solo determinate colonne. Scrivi semplicemente i nomi delle colonne nella query. I nomi di più colonne devono essere separati da una virgola.

È buona norma selezionare solo le colonne di cui hai bisogno. Usando * , sebbene conveniente, può causare un sovraccarico aggiuntivo se restituisce più colonne del necessario.

Quindi eseguiamo di nuovo la stessa query, ma questa volta selezioniamo solo ArtistName colonna:

SELECT ArtistName FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Risultato:

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

Il ORDER BY Clausola

Puoi utilizzare il ORDER BY clausola per limitare il numero di record restituiti.

Puoi aggiungere ASC per ordine crescente, o DESC per ordine decrescente. Se non aggiungi nulla, utilizzerà il crescente.

Qui ordiniamo per ArtistName campo in ordine crescente:

SELECT * FROM Artists
ORDER BY ArtistName;

Risultato:

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  

E se passiamo all'ordine decrescente:

SELECT * FROM Artists
ORDER BY ArtistName DESC;

Risultato:

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  

Il LIMIT Clausola

Puoi usare il LIMIT clausola per limitare il numero di record restituiti. Questo può essere utile se la tua tabella contiene un numero elevato di record ma vuoi vederne solo una manciata.

Qui limitiamo il record impostato a soli cinque record:

SELECT * FROM Artists LIMIT 5;

Risultato:

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