SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite Къде

Резюме :в този урок ще научите как да използвате SQLite WHERE клауза за определяне на условието за търсене на редове, върнати от заявката.

Въведение в SQLite WHERE клауза

WHERE клаузата е незадължителна клауза на SELECT изявление. Показва се след FROM клауза като следното изявление:

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

В този пример добавяте WHERE клауза към SELECT оператор за филтриране на редове, върнати от заявката. Когато оценявате SELECT изявление с WHERE клауза, SQLite използва следните стъпки:

  1. Първо проверете таблицата в FROM клауза.
  2. Второ, оценете условията в WHERE клауза, за да получите редовете, които отговарят на тези условия.
  3. Трето, направете крайния набор от резултати въз основа на редовете в предишната стъпка с колони в SELECT клауза.

Условието за търсене в WHERE има следната форма:

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

Например, можете да формирате условие за търсене, както следва:

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)

Освен SELECT израз, можете да използвате WHERE клауза в UPDATE и DELETE изявления.

Оператори за сравнение на SQLite

Оператор за сравнение проверява дали два израза са еднакви. Следната таблица илюстрира операторите за сравнение, които можете да използвате за конструиране на изрази:

Оператор Значение
= Равно на
<> или != Не е равно на
< По-малко от
> По-голямо от
<= По-малко или равно на
>= По-голямо или равно на

Логически оператори на SQLite

Логическите оператори ви позволяват да тествате истинността на някои изрази. Логическият оператор връща 1, 0 или стойност NULL.

Забележете, че SQLite не предоставя булев тип данни, следователно 1 означава TRUE, а 0 означава FALSE.

Следната таблица илюстрира логическите оператори на SQLite:

Оператор Значение
ВСИЧКИ връща 1, ако всички изрази са 1.
И връща 1, ако и двата израза са 1, и 0, ако един от изразите е 0.
ВСЯКАКВА връща 1, ако някое от набор от сравнения е 1.
МЕЖДУ връща 1, ако стойността е в рамките на диапазон.
СЪЩЕСТВУВА връща 1, ако подзаявка съдържа редове.
В връща 1, ако дадена стойност е в списък със стойности.
Харесвам връща 1, ако стойност съвпада с модел
НЕ обръща стойността на други оператори като NOT EXISTS, NOT IN, NOT BETWEEN и т.н.
ИЛИ връща true, ако някой от изразите е 1

SQLite WHERE примери за клаузи

Ще използваме tracks таблица в примерната база данни, за да илюстрира как да използвате WHERE клауза.

Операторът за равенство (= ) е най-често използваният оператор. Например, следната заявка използва WHERE клауза на оператора за равенство, за да намерите всички песни в албума с идентификатор 1:

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

Опитайте го

SQLite сравнява стойностите, съхранени в AlbumId колона с литерална стойност 1 за да провери дали са равни. Връщат се само редовете, които отговарят на условието.

Когато сравнявате две стойности, трябва да се уверите, че те са от един и същ тип данни. Трябва да сравнявате числа с числа, низ с низове и т.н.

В случай, че сравнявате стойности в различни типове данни, например низ с число, SQLite трябва да извърши неявни преобразувания на типове данни, но като цяло трябва да избягвате да правите това.

Използвате логическия оператор, за да комбинирате изрази. Например, за да получите песни от албум 1 с дължина по-голяма от 200 000 милисекунди, използвате следното изявление:

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

Опитайте го

Изявлението използва два израза albumid = 1 и milliseconds > 250000 . Той използва AND логически оператор за комбиниране на тези изрази.


SQLite WHERE клауза с LIKE пример за оператор

Понякога може да не си спомняте точно данните, които искате да търсите. В този случай извършвате неточно търсене с помощта на LIKE оператор.

Например, за да намерите кои песни са композирани от Смит, използвате LIKE оператор, както следва:

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

Опитайте го

Получавате песни, композирани от R.A. Смит-Дизел, Ейдриън Смит и др.

SQLite WHERE клауза с IN пример за оператор

IN операторът ви позволява да проверите дали дадена стойност е в списък от разделен със запетая списък със стойности. Например, за да намерите песни, които имат идентификатор на тип медия 2 или 3, използвате IN оператор, както е показано в следното изявление:

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

Опитайте го

В този урок научихте как да използвате SQLite WHERE клауза за филтриране на редове в крайния набор от резултати с помощта на сравнение и логически оператори.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кога трябва да затворя курсор и db?

  2. Как да изтеглите данни от базата данни и да ги видите като ListView

  3. Как да четете и актуализирате база данни SQLite с помощта на ListView в Android?

  4. Logcat казва невалидни данни за колона1

  5. Как да синхронизирам с локална база данни и да анализирам?