Samenvatting :in deze tutorial leer je hoe je SQLite gebruikt WHERE
clausule om de zoekvoorwaarde op te geven voor rijen die door de zoekopdracht worden geretourneerd.
Inleiding tot SQLite WHERE
clausule
De WHERE
clausule is een optionele clausule van de SELECT
uitspraak. Het verschijnt na de FROM
clausule als de volgende verklaring:
SELECT
column_list
FROM
table
WHERE
search_condition;
Code language: SQL (Structured Query Language) (sql)
In dit voorbeeld voegt u een WHERE
. toe clausule aan de SELECT
instructie om rijen te filteren die door de query worden geretourneerd. Bij het evalueren van een SELECT
statement met een WHERE
clausule, gebruikt SQLite de volgende stappen:
- Controleer eerst de tabel in de
FROM
clausule. - Ten tweede, evalueer de voorwaarden in de
WHERE
clausule om de rijen te krijgen die aan deze voorwaarden voldeden. - Ten derde, maak het uiteindelijke resultaat op basis van de rijen in de vorige stap met kolommen in de
SELECT
clausule.
De zoekvoorwaarde in de WHERE
heeft de volgende vorm:
left_expression COMPARISON_OPERATOR right_expression
Code language: SQL (Structured Query Language) (sql)
U kunt bijvoorbeeld als volgt een zoekvoorwaarde vormen:
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)
Naast de SELECT
statement, kunt u de WHERE
clausule in de UPDATE
en DELETE
verklaringen.
SQLite-vergelijkingsoperators
Een vergelijkingsoperator test of twee uitdrukkingen hetzelfde zijn. De volgende tabel illustreert de vergelijkingsoperatoren die u kunt gebruiken om uitdrukkingen te construeren:
Operator | Betekenis |
---|---|
= | Gelijk aan |
<> of != | Niet gelijk aan |
< | Minder dan |
> | Groter dan |
<= | Minder dan of gelijk aan |
>= | Groter dan of gelijk aan |
SQLite logische operatoren
Met logische operatoren kunt u de waarheid van sommige uitdrukkingen testen. Een logische operator retourneert 1, 0 of een NULL-waarde.
Merk op dat SQLite geen Booleaans gegevenstype biedt, daarom betekent 1 WAAR en 0 betekent ONWAAR.
De volgende tabel illustreert de logische SQLite-operators:
Operator | Betekenis |
---|---|
ALLE | retourneert 1 als alle uitdrukkingen 1 zijn. |
EN | retourneert 1 als beide uitdrukkingen 1 zijn en 0 als een van de uitdrukkingen 0 is. |
ELKE | retourneert 1 als een van een reeks vergelijkingen 1 is. |
TUSSEN | retourneert 1 als een waarde binnen een bereik valt. |
BESTAAT | retourneert 1 als een subquery rijen bevat. |
IN | retourneert 1 als een waarde in een lijst met waarden staat. |
LIKE | retourneert 1 als een waarde overeenkomt met een patroon |
NIET | draait de waarde van andere operatoren om, zoals NOT BESTAAT, NIET IN, NIET TUSSEN, enz. |
OF | retourneert waar als een van beide expressies 1 is |
SQLite WHERE
clausule voorbeelden
We gebruiken de tracks
tabel in de voorbeelddatabase om te illustreren hoe de WHERE
clausule.
De gelijkheidsoperator (=
) is de meest gebruikte operator. De volgende query gebruikt bijvoorbeeld de WHERE
clausule de gelijkheidsoperator om alle nummers in het album-ID 1 te vinden:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;
Code language: SQL (Structured Query Language) (sql)
Probeer het
SQLite vergelijkt de waarden die zijn opgeslagen in de AlbumId
kolom met een letterlijke waarde 1
om te testen of ze gelijk zijn. Alleen de rijen die aan de voorwaarde voldoen, worden geretourneerd.
Wanneer u twee waarden vergelijkt, moet u ervoor zorgen dat ze van hetzelfde gegevenstype zijn. Je moet getallen met getallen vergelijken, string met strings, enz.
Als u waarden in verschillende gegevenstypen vergelijkt, bijvoorbeeld een tekenreeks met een getal, moet SQLite impliciete gegevenstypeconversies uitvoeren, maar in het algemeen moet u dit vermijden.
U gebruikt de logische operator om expressies te combineren. Om bijvoorbeeld tracks van album 1 te krijgen die een lengte hebben van meer dan 200.000 milliseconden, gebruikt u de volgende instructie:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;
Code language: SQL (Structured Query Language) (sql)
Probeer het
De instructie gebruikte twee uitdrukkingen albumid = 1
en milliseconds > 250000
. Het gebruikt de AND
logische operator om deze uitdrukkingen te combineren.
SQLite WHERE
clausule met LIKE
operator voorbeeld
Soms herinnert u zich misschien niet precies de gegevens die u wilt doorzoeken. In dit geval voert u een onnauwkeurige zoekopdracht uit met de LIKE
telefoniste.
Om bijvoorbeeld te vinden welke nummers gecomponeerd zijn door Smith, gebruik je de LIKE
operator als volgt:
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Probeer het
Je krijgt nummers gecomponeerd door R.A. Smith-Diesel, Adrian Smith, enz.
SQLite WHERE
clausule met de IN
operator voorbeeld
De IN
operator stelt u in staat om te controleren of een waarde in een lijst van een door komma's gescheiden lijst met waarden staat. Als u bijvoorbeeld tracks wilt vinden waarvan het mediatype-ID 2 of 3 is, gebruikt u de IN
operator zoals weergegeven in de volgende verklaring:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);
Code language: SQL (Structured Query Language) (sql)
Probeer het
In deze tutorial heb je geleerd hoe je de SQLite WHERE
. gebruikt clausule om rijen in de uiteindelijke resultaatset te filteren met behulp van vergelijkings- en logische operatoren.