Подробнее о WHERE. Сравнение с NULL. LIKE, IN, BETWEEN, EXISTS

Возможны следующие варианты структуры условия: 1. Обычное сравнение Структура:
1
<Выражение> <Оператор> <Выражение>
В данном случае используют операторы: «>» - больше, «<» - меньше, «=» - равно, «>=» - больше или равно, «<=» - меньше или равно. Также используют знак «!» перед оператором сравнения, который добавляет приставку «не» к логическому выражению: «!>», «!<», «!=» или «<>», «!>=», «!<=» (не равно, не больше и т.д.). Пример:
1
2
-- Вывести всех пользователей у которых id больше 5000
SELECT id, name FROM users WHERE id > 5000;

2. Сравнение с NULL Позволяет проверить, равно ли значение NULL или нет. Структура:
1
2
<Выражение> IS NULL
<Выражение> IS NOT NULL
В первом случае оператор WHERE возвратит истину, если выражение имеет значение NULL, во втором случае, если выражение не NULL. Пример:
1
2
-- Вывести всех пользователей без почты
SELECT id, name FROM users WHERE mail IS NULL;

3. Оператор LIKE LIKE позволяет сравнивать строку с так называемой маской или шаблоном. Структура:
1
<Выражение> LIKE <Маска>
Маска представляет собой строку, в которой некоторые символы не указаны конкретно. Символы можно указывать следующим образом: % - любое количество любых символов _ - один любой символ [ ] - Любой одиночный символ, содержащийся в диапазоне ([a-f]) или наборе ([abcdef]) [^] или [!]- Любой одиночный символ, не содержащийся в диапазоне ([^a-f]) или наборе ([^abcdef]) Если выражение подходит под маску, то оператор WHERE возвращает истину. Так же используют оператор NOT LIKE, означающий, что выражение не должно подходить под маску. Пример:
1
2
-- Вывести всех пользователей почта которых оканчивается на google.com
SELECT id, name, mail FROM users WHERE mail LIKE '%google.com';

4. Оператор IN Позволяет проверить соответствие выражения с одним из нескольких значений. Структура:
1
<Выражение> IN <Список значений>
Если выражение соответствует хотя бы одну из перечисленных значений, то оператор WHERE вернёт истину. Пример:
1
2
-- Вывести всех пользователей, чьи имена admin или administrator
SELECT id, name, mail FROM users WHERE name IN ('admin', 'administrator');

5. Оператор BETWEEN Позволяет проверить соответствие выражения со значением в некотором диапазоне. Структура:
1
<Выражение> BETWEEN <Значение1> AND <Значение2>
Если сравнивают числа, то выражение должно быть больше первого значения и меньше второго значения. Если сравнивают строки, то выражение должно находится между двумя значениями при сортировке в алфавитном порядке. Пример:
1
2
-- Вывести всех пользователей зарегистрировавшихся в 2017 году
SELECT id, name, date FROM users WHERE date BETWEEN '2017-01-01' AND '2017-11-31'

6. Оператор EXIST Проверяет, возвращает ли подзапрос, по крайней мере, одну строку. Структура:
1
EXISTS (<Подзапрос>)
Внутри оператора находится подзапрос. Если подзапрос вернёт хотя бы одну строку, то оператор WHERE примет истинное значение, иначе ложное. Пример:
1
2
-- Вывести всех пользователей с фотографиями
SELECT * FROM users WHERE EXISTS ( SELECT id FROM photos WHERE photos.user_id = users.id );
Спасибо за внимание.
Если статья Вам показалась незаконченной или Вы знаете как её улучшить, пожалуйста сообщите мне e@gohtml.ru