SQLite
 sql >> Baza danych >  >> RDS >> SQLite

SQLite Gdzie

Podsumowanie :w tym samouczku dowiesz się, jak używać SQLite WHERE klauzula określająca warunek wyszukiwania wierszy zwróconych przez zapytanie.

Wprowadzenie do SQLite WHERE klauzula

WHERE klauzula jest opcjonalną klauzulą ​​SELECT oświadczenie. Pojawia się po FROM klauzulę jako następujące oświadczenie:

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

W tym przykładzie dodajesz WHERE klauzula SELECT instrukcja do filtrowania wierszy zwracanych przez zapytanie. Podczas oceny SELECT oświadczenie z WHERE klauzula, SQLite wykonuje następujące kroki:

  1. Najpierw sprawdź tabelę w FROM klauzula.
  2. Po drugie, oceń warunki w WHERE klauzulę, aby uzyskać wiersze spełniające te warunki.
  3. Po trzecie, utwórz ostateczny zestaw wyników na podstawie wierszy z poprzedniego kroku z kolumnami w SELECT klauzula.

Warunek wyszukiwania w WHERE ma następującą postać:

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

Na przykład możesz utworzyć warunek wyszukiwania w następujący sposób:

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)

Oprócz SELECT oświadczenie, możesz użyć WHERE klauzula w UPDATE i DELETE oświadczenia.

Operatory porównania SQLite

Operator porównania sprawdza, czy dwa wyrażenia są takie same. Poniższa tabela ilustruje operatory porównania, których można użyć do konstruowania wyrażeń:

Operator Znaczenie
= Równe
<> lub != Nie równa
< Mniej niż
Większe niż
<= Mniejsze lub równe
>= Większe lub równe

Operatory logiczne SQLite

Operatory logiczne pozwalają sprawdzić prawdziwość niektórych wyrażeń. Operator logiczny zwraca 1, 0 lub wartość NULL.

Zauważ, że SQLite nie zapewnia typu danych logicznych, dlatego 1 oznacza PRAWDA, a 0 oznacza FAŁSZ.

Poniższa tabela ilustruje operatory logiczne SQLite:

Operator Znaczenie
WSZYSTKIE zwraca 1, jeśli wszystkie wyrażenia mają wartość 1.
ORAZ zwraca 1, jeśli oba wyrażenia mają wartość 1, i 0, jeśli jedno z wyrażeń ma wartość 0.
DOWOLNY zwraca 1, jeśli którekolwiek z zestawu porównań wynosi 1.
POMIĘDZY zwraca 1, jeśli wartość mieści się w zakresie.
ISTNIEJE zwraca 1, jeśli podzapytanie zawiera jakiekolwiek wiersze.
W zwraca 1, jeśli wartość znajduje się na liście wartości.
LUBIĘ zwraca 1, jeśli wartość pasuje do wzorca
NIE odwraca wartość innych operatorów, takich jak NOT EXISTS, NOT IN, NOT BETWEEN itp.
LUB zwraca prawdę, jeśli jedno z wyrażeń wynosi 1

SQLite WHERE przykłady klauzul

Użyjemy tracks tabeli w przykładowej bazie danych, aby zilustrować, jak używać WHERE klauzula.

Operator równości (= ) jest najczęściej używanym operatorem. Na przykład poniższe zapytanie używa WHERE klauzula operatora równości, aby znaleźć wszystkie utwory w albumie o identyfikatorze 1:

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

Wypróbuj

SQLite porównuje wartości przechowywane w AlbumId kolumna z wartością literału 1 aby sprawdzić, czy są równe. Zwracane są tylko wiersze, które spełniają warunek.

Porównując dwie wartości, należy upewnić się, że są to dane tego samego typu. Powinieneś porównać liczby z liczbami, ciąg z ciągami itp.

W przypadku porównywania wartości w różnych typach danych, np. ciąg znaków z liczbą, SQLite musi wykonać niejawne konwersje typów danych, ale generalnie należy tego unikać.

Do łączenia wyrażeń używa się operatora logicznego. Na przykład, aby uzyskać utwory z albumu 1, które mają długość większą niż 200 000 milisekund, użyj następującej instrukcji:

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

Wypróbuj

W instrukcji użyto dwóch wyrażeń albumid = 1 i milliseconds > 250000 . Używa AND operator logiczny do łączenia tych wyrażeń.


SQLite WHERE klauzula z LIKE przykład operatora

Czasami możesz nie pamiętać dokładnie danych, które chcesz przeszukać. W takim przypadku przeprowadzasz niedokładne wyszukiwanie za pomocą LIKE operatora.

Na przykład, aby znaleźć utwory skomponowane przez Smitha, użyj LIKE operatora w następujący sposób:

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

Wypróbuj

Otrzymasz utwory skomponowane przez R.A. Smith-Diesel, Adrian Smith itp.

SQLite WHERE klauzula z IN przykład operatora

IN Operator umożliwia sprawdzenie, czy wartość znajduje się na liście wartości oddzielonych przecinkami. Na przykład, aby znaleźć utwory, których identyfikator typu nośnika to 2 lub 3, użyj IN operatora, jak pokazano w następującym oświadczeniu:

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

Wypróbuj

W tym samouczku nauczyłeś się korzystać z SQLite WHERE klauzula do filtrowania wierszy w końcowym zestawie wyników za pomocą operatorów porównania i logicznych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizacja SQLite

  2. SQLite onUpgrade() frustracja

  3. Wybierz wyróżniający SQLite

  4. Utwórz jednostkę pokoju dla tabeli, która ma pole z typem danych LONG w Sqlite

  5. SQLite ISTNIEJE