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

SQLite Wo

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:

  1. Überprüfen Sie zuerst die Tabelle im FROM Klausel.
  2. Als Zweites werten Sie die Bedingungen in WHERE aus -Klausel, um die Zeilen abzurufen, die diese Bedingungen erfüllen.
  3. 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_expressionCode 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.