sql >> Database >  >> RDS >> SQLite

SQLite waar

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:

  1. Controleer eerst de tabel in de FROM clausule.
  2. Ten tweede, evalueer de voorwaarden in de WHERE clausule om de rijen te krijgen die aan deze voorwaarden voldeden.
  3. 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_expressionCode 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.


  1. Hoe de SQL Server DIFFERENCE()-functie werkt

  2. Prestaties van PostgreSQL-query's begrijpen

  3. Hoe NIET REGEXP werkt in MariaDB

  4. Waarom wordt de uitvoeringstijd van de opgeslagen procedure in Oracle aanzienlijk verlengd, afhankelijk van hoe deze wordt uitgevoerd?