SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite - Daten auswählen

Um Daten aus einer SQLite-Datenbank auszuwählen, verwenden Sie SELECT Aussage.

Wenn Sie diese Anweisung verwenden, geben Sie an, aus welchen Tabellen Daten ausgewählt werden sollen, sowie die Spalten, die von der Abfrage zurückgegeben werden sollen.

Sie können auch zusätzliche Kriterien angeben, um die zurückgegebenen Daten weiter einzugrenzen.

Einfaches SELECT Erklärung

Wir haben bereits ein SELECT verwendet Anweisung zuvor, als wir Daten eingefügt haben.

Die Anweisung, die wir verwendet haben, war diese:

SELECT * FROM Artists;

Dies ist ziemlich selbsterklärend – es weist SQLite an, alle Spalten der Artists auszuwählen Tisch. Das Sternchen (* ) ist eine Abkürzung für "alle Spalten". Es erspart uns, die Namen aller Spalten aufzuschreiben.

Daher gibt diese Abfrage alle Datensätze und alle Spalten zurück. So:

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

Formatierung

Lassen Sie uns die Ausgabe so formatieren, dass unsere Ergebnisse etwas besser lesbar sind.

Spalten verwenden

Sie können .mode verwenden um den Ausgabemodus zu ändern. Das obige Beispiel verwendet .mode list , die die Ergebnisse als Liste anzeigt.

Lassen Sie uns den Modus ändern, um Spalten zu verwenden.

.mode column

Wenn Sie dies tun, müssen Sie möglicherweise die Spaltenbreite anpassen (alle Daten, die zu breit für die Spalte sind, werden abgeschnitten).

Spaltenbreite anpassen

Um die Spaltenbreiten anzupassen, verwenden Sie die .width Befehl, gefolgt von Breiten für jede Spalte.

Das folgende Beispiel setzt die erste Spalte auf 12 und die zweite Spalte auf 20 .

.width 12 20

Kopfzeilen hinzufügen

Sie können auch .headers verwenden um anzugeben, ob Spaltenüberschriften angezeigt werden sollen oder nicht.

Um Kopfzeilen anzuzeigen, verwenden Sie Folgendes:

.headers on

Sie können sie mit .headers off entfernen .

Einstellungen anzeigen

Sie können diese und andere Einstellungen jederzeit überprüfen, indem Sie .show eingeben

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

Neues Format

So sieht das vorherige Beispiel im Spalten- und Kopfzeilenmodus aus:

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 

Das WHERE Klausel

Sie können das WHERE verwenden Klausel, um die Ergebnisse einzugrenzen. Mit der Klausel können Sie bestimmte Kriterien festlegen, die auf die Abfrage angewendet werden sollen.

Beispielsweise könnten Sie angeben, dass nur Datensätze zurückgegeben werden sollen, bei denen ein bestimmtes Feld einen bestimmten Wert enthält.

Hier ist ein sehr konkretes Beispiel. Es gibt an, dass nur der Datensatz mit einer ArtistId gleich 6 zurückgegeben werden soll:

SELECT * FROM Artists
WHERE ArtistId = 6;

Ergebnis:

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

Um alle Künstler zu finden, deren Name mit dem Buchstaben "S" beginnt, könnten Sie Folgendes tun:

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

Ergebnis:

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

Das Prozentzeichen (% ) ist ein Platzhalterzeichen, das verwendet werden kann, um ein beliebiges Zeichen anzugeben. In diesem Beispiel geben wir also an, dass der Name des Künstlers wie dieses Muster sein muss (d. h. das Muster, das mit dem Buchstaben S beginnt und danach ein beliebiges anderes Zeichen).

Ein weiteres Beispiel für die Verwendung von WHERE -Klausel ist es, einen Wertebereich abzurufen. Beispielsweise könnten wir nach Datensätzen suchen, bei denen der Wert kleiner als eine Zahl, größer als eine Zahl oder innerhalb eines bestimmten Bereichs ist.

Hier ist ein Beispiel für die Auswahl nur der Datensätze mit einer ArtistId weniger als eine Zahl:

SELECT * FROM Artists
WHERE ArtistId < 6;

Ergebnis:

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

Hier ist ein Beispiel für die Auswahl nur der Datensätze mit einer ArtistId innerhalb eines bestimmten Bereichs:

SELECT * FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Ergebnis:

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

Spalten auswählen

Sie können angeben, dass nur bestimmte Spalten in der Ergebnismenge zurückgegeben werden. Schreiben Sie einfach die Spaltennamen in die Abfrage. Mehrere Spaltennamen müssen durch ein Komma getrennt werden.

Es empfiehlt sich, nur die Spalten auszuwählen, die Sie benötigen. Mit * , ist zwar praktisch, kann aber zusätzlichen Overhead verursachen, wenn mehr Spalten als erforderlich zurückgegeben werden.

Lassen Sie uns also dieselbe Abfrage noch einmal ausführen, aber wählen Sie diesmal nur den ArtistName aus Spalte:

SELECT ArtistName FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Ergebnis:

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

Der ORDER BY Klausel

Sie können den ORDER BY verwenden -Klausel, um die Anzahl der zurückgegebenen Datensätze zu begrenzen.

Sie können ASC hinzufügen für aufsteigende Reihenfolge oder DESC für absteigende Reihenfolge. Wenn Sie nichts hinzufügen, wird aufsteigend verwendet.

Hier ordnen wir nach ArtistName Feld in aufsteigender Reihenfolge:

SELECT * FROM Artists
ORDER BY ArtistName;

Ergebnis:

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  

Und wenn wir zur absteigenden Reihenfolge wechseln:

SELECT * FROM Artists
ORDER BY ArtistName DESC;

Ergebnis:

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  

Das LIMIT Klausel

Sie können das LIMIT verwenden -Klausel, um die Anzahl der zurückgegebenen Datensätze zu begrenzen. Dies kann praktisch sein, wenn Ihre Tabelle eine große Anzahl von Datensätzen enthält, Sie aber nur eine Handvoll sehen möchten.

Hier begrenzen wir den Datensatz auf nur fünf Datensätze:

SELECT * FROM Artists LIMIT 5;

Ergebnis:

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