Конструкция WHERE в SQL

В категории: Обучающие материалы | Дата: 23.02.2013, 21:59 | Просмотров: 256


При выборке записей из таблицы практически всегда требуется задавать определённые условия, по которым мы определяем, какие записи нам нужны, а какие - нет. И именно эти условия можно задавать с помощью конструкции WHERE в SQL.

Начну с простого примера выборки с использованием конструции WHERE в SQL:
Код
SELECT * FROM table WHERE count=5


Вернутся записи, в которых поле "count" имеет значение 5. Теперь усложним запрос:
Код
SELECT * FROM table WHERE count=5 AND id < 100


Таким образом, вернутся записи, у которых поле "count" имеет значение 5 И поле "id" имеет значение меньше 100.

Разумеется, Вы можете использовать и другие логические операции. Их полный список:


  • ! (отрицание)
  • AND (И)
  • OR (ИЛИ)
  • XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ, иногда ещё называют МОНТАЖНОЕ ИЛИ, но такое название встречается в основном в микропроцессорной литературе)


Пример с использованием нескольких логических операторов:
Код
SELECT * FROM table WHERE !(id <= 120 AND (count=10 OR date > "10/11/1980"))


Вот такой, на первый взгляд, сложный SQL-запрос. Постарайтесь в нём разобраться самостоятельно.

Также конструкция WHERE в SQL может содержать LIKE. LIKE позволяет определить, совпадает ли указанная строка с определённым шаблоном. Чтобы стало немного понятнее, приведу пример:
Код
SELECT * FROM table WHERE text LIKE "%some text%"


Данный SQL-запрос вернёт result_set, содержащий записи, в которых поле "text" имеет такой текст: "some text". Обратите внимание, что это не проверка на равенство. Текст может быть огромным, но если в нём содержится строка: "some text", то LIKE вернёт true.

Давайте напишу, как задаётся шаблон для LIKE:

  • % - это то, что мы с Вами использовали. Используется он чаще всего и означает он любую строку любой длины. Фактически, строкой "%some text%" мы говорим, что сначала идёт любая строка любой длины, затем "some text", а затем вновь любая строка любой длины. Если текст удовлетворяет этому шаблону, то вернуть true, иначе false.
  • [ ] - это одиночный символ. Чтобы использовать этот шаблон необходимо задавать диапазоны, например, так: "[a-z]some%". Данный шаблон будет означать, что сначала идёт 1 символ (любой символ от a до z), далее "some" и потом любая строка любой длины.
  • _ - это любой одиночный символ.
  • [^] - это противоположность [ ]. Например, можно привести такой пример: "[^az]some_". Данный шаблон означает, что вначале идёт любой символ, но только НЕ "a" и НЕ "z". Далее должна идти строка "some", а после только один одиночный символ.


Знание и умение использования LIKE очень важно, поверьте моему опыту. Самый простой пример использования LIKE - это поиск по сайту. Ведь контент находится в базе данных, и необходимо вытащить только те записи, в которых содержится строка, заданная в строке поиска. И тут приходит на помощь LIKE. Именно так реализован поиск мною на этом сайте.

Вот, пожалуй, всё, что необходимо знать для успешной выборки записей с использованием конструкции WHERE в SQL.

Автор\Источник: http://myrusakov.ru/

Похожие посты

Поделись с друзьями

html-cсылка:

BB-cсылка:

Прямая ссылка:

Комментарии (0)

bbsmenu">
Оставить комментарий