Zusammenfassung :In diesem Tutorial lernen Sie, wie Sie SQLite WHERE
verwenden -Klausel, um die Suchbedingung für die von der Abfrage zurückgegebenen Zeilen anzugeben.
Einführung in SQLite WHERE
Klausel
Das WHERE
-Klausel ist eine optionale Klausel von SELECT
Erklärung. Es erscheint nach dem FROM
-Klausel wie die folgende Anweisung:
SELECT
column_list
FROM
table
WHERE
search_condition;
Code language: SQL (Structured Query Language) (sql)
In diesem Beispiel fügen Sie ein WHERE
hinzu -Klausel zu SELECT
-Anweisung, um die von der Abfrage zurückgegebenen Zeilen zu filtern. Beim Auswerten eines SELECT
Anweisung mit einem WHERE
-Klausel verwendet SQLite die folgenden Schritte:
- Überprüfen Sie zuerst die Tabelle im
FROM
Klausel. - Als Zweites werten Sie die Bedingungen in
WHERE
aus -Klausel, um die Zeilen abzurufen, die diese Bedingungen erfüllen. - Erstellen Sie drittens die endgültige Ergebnismenge basierend auf den Zeilen im vorherigen Schritt mit Spalten in
SELECT
Klausel.
Die Suchbedingung im WHERE
hat folgende Form:
left_expression COMPARISON_OPERATOR right_expression
Code language: SQL (Structured Query Language) (sql)
Beispielsweise können Sie eine Suchbedingung wie folgt formulieren:
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;
Code language: SQL (Structured Query Language) (sql)
Neben dem SELECT
-Anweisung können Sie die WHERE
-Anweisung verwenden -Klausel im UPDATE
und DELETE
Aussagen.
SQLite-Vergleichsoperatoren
Ein Vergleichsoperator testet, ob zwei Ausdrücke gleich sind. Die folgende Tabelle veranschaulicht die Vergleichsoperatoren, die Sie zum Erstellen von Ausdrücken verwenden können:
Operator | Bedeutung |
---|---|
= | Gleich |
<> oder != | Ungleich |
< | Kleiner als |
> | Größer als |
<= | Kleiner als oder gleich |
>= | Größer als oder gleich |
Logische SQLite-Operatoren
Mit logischen Operatoren können Sie die Wahrheit einiger Ausdrücke testen. Ein logischer Operator gibt 1, 0 oder einen NULL-Wert zurück.
Beachten Sie, dass SQLite keinen booleschen Datentyp bereitstellt, daher bedeutet 1 WAHR und 0 bedeutet FALSCH.
Die folgende Tabelle veranschaulicht die logischen SQLite-Operatoren:
Operator | Bedeutung |
---|---|
ALLE | gibt 1 zurück, wenn alle Ausdrücke 1 sind. |
UND | gibt 1 zurück, wenn beide Ausdrücke 1 sind, und 0, wenn einer der Ausdrücke 0 ist. |
JEDER | gibt 1 zurück, wenn einer der Vergleichssätze 1 ist. |
ZWISCHEN | gibt 1 zurück, wenn ein Wert innerhalb eines Bereichs liegt. |
EXISTIERT | gibt 1 zurück, wenn eine Unterabfrage Zeilen enthält. |
EIN | gibt 1 zurück, wenn sich ein Wert in einer Werteliste befindet. |
WIE | gibt 1 zurück, wenn ein Wert mit einem Muster übereinstimmt |
NICHT | kehrt den Wert anderer Operatoren wie NOT EXISTS, NOT IN, NOT BETWEEN usw. um |
ODER | gibt wahr zurück, wenn einer der Ausdrücke 1 ist |
SQLite WHERE
Klauselbeispiele
Wir werden die tracks
verwenden Tabelle in der Beispieldatenbank, um die Verwendung von WHERE
zu veranschaulichen Klausel.
Der Gleichheitsoperator (=
) ist der am häufigsten verwendete Operator. Die folgende Abfrage verwendet beispielsweise WHERE
Klausel den Gleichheitsoperator, um alle Titel in der Album-ID 1 zu finden:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
SQLite vergleicht die in AlbumId
gespeicherten Werte Spalte mit einem Literalwert 1
um zu testen, ob sie gleich sind. Nur die Zeilen, die die Bedingung erfüllen, werden zurückgegeben.
Wenn Sie zwei Werte vergleichen, müssen Sie sicherstellen, dass sie vom gleichen Datentyp sind. Man sollte Zahlen mit Zahlen vergleichen, Zeichenkette mit Zeichenkette usw.
Falls Sie Werte in verschiedenen Datentypen vergleichen, z. B. einen String mit einer Zahl, muss SQLite implizite Datentypkonvertierungen durchführen, aber im Allgemeinen sollten Sie dies vermeiden.
Sie verwenden den logischen Operator, um Ausdrücke zu kombinieren. Um beispielsweise Titel des Albums 1 zu erhalten, die länger als 200.000 Millisekunden sind, verwenden Sie die folgende Anweisung:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Die Anweisung verwendete zwei Ausdrücke albumid = 1
und milliseconds > 250000
. Es verwendet das AND
logischer Operator, um diese Ausdrücke zu kombinieren.
SQLite WHERE
Klausel mit LIKE
Operatorbeispiel
Manchmal erinnern Sie sich vielleicht nicht genau an die Daten, die Sie durchsuchen möchten. In diesem Fall führen Sie eine ungenaue Suche mit dem LIKE
durch Betreiber.
Um beispielsweise herauszufinden, welche Tracks von Smith komponiert wurden, verwenden Sie den LIKE
Operator wie folgt:
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Du bekommst Tracks komponiert von R.A. Smith-Diesel, Adrian Smith usw.
SQLite WHERE
-Klausel mit dem IN
Operatorbeispiel
Der IN
Mit dem Operator können Sie überprüfen, ob sich ein Wert in einer Liste einer durch Kommas getrennten Liste von Werten befindet. Um beispielsweise Titel zu finden, deren Medientyp-ID 2 oder 3 ist, verwenden Sie den IN
Operator wie in der folgenden Anweisung gezeigt:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
In diesem Tutorial haben Sie gelernt, wie Sie SQLite WHERE
verwenden -Klausel zum Filtern von Zeilen in der endgültigen Ergebnismenge mithilfe von Vergleichs- und logischen Operatoren.