sql >> Database teknologi >  >> RDS >> SQLite

SQLite Hvor

Oversigt :i denne tutorial lærer du, hvordan du bruger SQLite WHERE klausul for at angive søgebetingelsen for rækker, der returneres af forespørgslen.

Introduktion til SQLite WHERE klausul

WHERE klausul er en valgfri klausul af SELECT udmelding. Den vises efter FROM klausul som følgende udsagn:

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

I dette eksempel tilføjer du en WHERE klausul til SELECT sætning for at filtrere rækker, der returneres af forespørgslen. Ved evaluering af en SELECT sætning med en WHERE klausul, bruger SQLite følgende trin:

  1. Tjek først tabellen i FROM klausul.
  2. For det andet skal du evaluere betingelserne i WHERE klausul for at få de rækker, der opfyldte disse betingelser.
  3. For det tredje laver du det endelige resultatsæt baseret på rækkerne i det foregående trin med kolonner i SELECT klausul.

Søgebetingelsen i WHERE har følgende form:

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

For eksempel kan du danne en søgebetingelse som følger:

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)

Udover SELECT sætning, kan du bruge WHERE klausul i UPDATE og DELETE udsagn.

SQLite sammenligningsoperatorer

En sammenligningsoperator tester, om to udtryk er ens. Følgende tabel illustrerer de sammenligningsoperatorer, som du kan bruge til at konstruere udtryk:

Operator Betydning
= Lige med
<> eller != Ikke lig med
< Mindre end
> Større end
<= Mindre end eller lig med
>= Større end eller lig med

SQLite logiske operatorer

Logiske operatorer giver dig mulighed for at teste sandheden af ​​nogle udtryk. En logisk operator returnerer 1, 0 eller en NULL-værdi.

Bemærk, at SQLite ikke leverer boolsk datatype, derfor betyder 1 SAND, og ​​0 betyder FALSK.

Følgende tabel illustrerer de logiske SQLite-operatorer:

Operatør Betydning
ALLE returnerer 1, hvis alle udtryk er 1.
OG returnerer 1, hvis begge udtryk er 1, og 0, hvis et af udtrykkene er 0.
ENHVER returnerer 1, hvis en af ​​et sæt af sammenligninger er 1.
MELLEM returnerer 1, hvis en værdi er inden for et interval.
FINDER returnerer 1, hvis en underforespørgsel indeholder nogle rækker.
IN returnerer 1, hvis en værdi er på en liste over værdier.
LIKE returnerer 1, hvis en værdi matcher et mønster
IKKE vender værdien af ​​andre operatorer, såsom IKKE FINDER, IKKE I, IKKE MELLEM, osv.
ELLER returnerer sandt, hvis et af udtryk er 1

SQLite WHERE klausuleksempler

Vi vil bruge tracks tabel i eksempeldatabasen for at illustrere, hvordan man bruger WHERE klausul.

Ligestillingsoperatøren (= ) er den mest brugte operator. For eksempel bruger følgende forespørgsel WHERE klausul lighedsoperatøren for at finde alle numrene i album-id 1:

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

Prøv det

SQLite sammenligner værdierne gemt i AlbumId kolonne med en bogstavelig værdi 1 for at teste om de er ens. Kun de rækker, der opfylder betingelsen, returneres.

Når du sammenligner to værdier, skal du sikre dig, at de er af samme datatype. Du bør sammenligne tal med tal, streng med strenge osv.

Hvis du sammenligner værdier i forskellige datatyper, f.eks. en streng med et tal, skal SQLite udføre implicitte datatypekonverteringer, men generelt bør du undgå at gøre dette.

Du bruger den logiske operator til at kombinere udtryk. For at få numre af album 1, der har en længde på mere end 200.000 millisekunder, bruger du f.eks. følgende sætning:

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

Prøv det

Udsagnet brugte to udtryk albumid = 1 og milliseconds > 250000 . Den bruger AND logisk operator til at kombinere disse udtryk.


SQLite WHERE klausul med LIKE operatøreksempel

Nogle gange kan du måske ikke huske præcis de data, du vil søge efter. I dette tilfælde udfører du en upræcis søgning ved hjælp af LIKE operatør.

For at finde ud af, hvilke numre Smith har skrevet, bruger du LIKE operatør som følger:

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

Prøv det

Du får numre komponeret af R.A. Smith-Diesel, Adrian Smith osv.

SQLite WHERE klausul med IN operatøreksempel

IN operator giver dig mulighed for at kontrollere, om en værdi er på en liste over en kommasepareret liste over værdier. For at finde spor, der f.eks. har medietype-id er 2 eller 3, bruger du IN operatør som vist i følgende sætning:

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

Prøv det

I denne øvelse har du lært, hvordan du bruger SQLite WHERE klausul for at filtrere rækker i det endelige resultatsæt ved hjælp af sammenligning og logiske operatorer.


  1. PostgreSQL:Hvorfor kan psql ikke oprette forbindelse til serveren?

  2. Brug af Salesforce SOQL fra Linux

  3. Hvordan zipper man en fil i PL/SQL?

  4. Sådan opretter du en MySQL-database og indstiller privilegier