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