sql >> Databasteknik >  >> RDS >> SQLite

SQLite Var

Sammanfattning :i denna handledning kommer du att lära dig hur du använder SQLite WHERE sats för att ange sökvillkoret för rader som returneras av frågan.

Introduktion till SQLite WHERE klausul

WHERE sats är en valfri sats i SELECT påstående. Den visas efter FROM klausul som följande uttalande:

SELECT
	column_list
FROM
	table
WHERE
	search_condition;Code language: SQL (Structured Query Language) (sql)

I det här exemplet lägger du till en WHERE sats till SELECT uttalande för att filtrera rader som returneras av frågan. När du utvärderar en SELECT uttalande med en WHERE sats, använder SQLite följande steg:

  1. Kontrollera först tabellen i FROM klausul.
  2. För det andra, utvärdera villkoren i WHERE klausul för att få de rader som uppfyllde dessa villkor.
  3. För det tredje, gör det slutliga resultatet baserat på raderna i föregående steg med kolumner i SELECT klausul.

Sökvillkoret i WHERE har följande form:

left_expression COMPARISON_OPERATOR right_expressionCode language: SQL (Structured Query Language) (sql)

Du kan till exempel skapa ett sökvillkor enligt följande:

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)

Förutom SELECT kan du använda WHERE klausul i UPDATE och DELETE uttalanden.

SQLite jämförelseoperatorer

En jämförelseoperator testar om två uttryck är lika. Följande tabell illustrerar jämförelseoperatorerna som du kan använda för att konstruera uttryck:

Operator Betydning
= Lika med
<> eller != Inte lika med
< Mindre än
> Större än
<= Mindre än eller lika med
>= Större än eller lika med

SQLite logiska operatorer

Med logiska operatorer kan du testa sanningen i vissa uttryck. En logisk operator returnerar 1, 0 eller ett NULL-värde.

Observera att SQLite inte tillhandahåller boolesk datatyp, därför betyder 1 SANT och 0 betyder FALSK.

Följande tabell illustrerar de logiska SQLite-operatorerna:

Operator Betydning
ALLA returerar 1 om alla uttryck är 1.
OCH returerar 1 om båda uttrycken är 1 och 0 om ett av uttrycken är 0.
NÅGON returerar 1 om någon av en uppsättning jämförelser är 1.
MELLAN returerar 1 om ett värde är inom ett intervall.
FINNS returerar 1 om en underfråga innehåller några rader.
IN returerar 1 om ett värde finns i en värdelista.
GILLA returerar 1 om ett värde matchar ett mönster
INTE vänder värdet på andra operatorer som INTE FINNS, INTE I, INTE MELLAN, etc.
ELLER returnerar sant om något uttryck är 1

SQLite WHERE klausulexempel

Vi kommer att använda tracks tabell i exempeldatabasen för att illustrera hur man använder WHERE klausul.

Jämlikhetsoperatören (= ) är den mest använda operatorn. Till exempel använder följande fråga WHERE klausul jämlikhetsoperatorn för att hitta alla spår i album-id 1:

SELECT
   name,
   milliseconds,
   bytes,
   albumid
FROM
   tracks
WHERE
   albumid = 1;Code language: SQL (Structured Query Language) (sql)

Prova det

SQLite jämför värdena lagrade i AlbumId kolumn med ett bokstavligt värde 1 för att testa om de är lika. Endast de rader som uppfyller villkoret returneras.

När du jämför två värden måste du se till att de är av samma datatyp. Du bör jämföra siffror med siffror, sträng med strängar, etc.

Om du jämför värden i olika datatyper, t.ex. en sträng med ett nummer, måste SQLite utföra implicita datatypkonverteringar, men i allmänhet bör du undvika att göra detta.

Du använder den logiska operatorn för att kombinera uttryck. Till exempel, för att få spår av album 1 som är längre än 200 000 millisekunder, använder du följande uttalande:

SELECT
	name,
	milliseconds,
	bytes,
	albumid
FROM
	tracks
WHERE
	albumid = 1
AND milliseconds > 250000;Code language: SQL (Structured Query Language) (sql)

Prova det

Uttrycket använde två uttryck albumid = 1 och milliseconds > 250000 . Den använder AND logisk operator för att kombinera dessa uttryck.


SQLite WHERE sats med LIKE operatörsexempel

Ibland kanske du inte kommer ihåg exakt vilken data du vill söka efter. I det här fallet utför du en inexakt sökning med LIKE operatör.

Till exempel, för att hitta vilka spår som komponerats av Smith använder du LIKE operatör enligt följande:

SELECT
	name,
	albumid,
	composer
FROM
	tracks
WHERE
	composer LIKE '%Smith%'
ORDER BY
	albumid;Code language: SQL (Structured Query Language) (sql)

Prova det

Du får låtar komponerade av R.A. Smith-Diesel, Adrian Smith, etc.

SQLite WHERE sats med IN operatörsexempel

IN operatorn låter dig kontrollera om ett värde finns i en lista med en kommaseparerad lista med värden. Till exempel, för att hitta spår som har mediatyp-id 2 eller 3 använder du IN operatör som visas i följande uttalande:

SELECT
	name,
	albumid,
	mediatypeid
FROM
	tracks
WHERE
	mediatypeid IN (2, 3);Code language: SQL (Structured Query Language) (sql)

Prova det

I den här handledningen har du lärt dig hur du använder SQLite WHERE sats för att filtrera rader i den slutliga resultatuppsättningen med hjälp av jämförelse- och logiska operatorer.


  1. Skapa en fråga i SQL Server 2017

  2. Islands T-SQL Challenge

  3. Hur roterar man PgBouncer-loggar i Linux/Windows?

  4. PostgreSQL-databasens standardplats på Linux