SELECT ... FROM ... WHERE: операторы условий и приоритет операций
01__SELECT_FROM_WHERE/theory_01__SELECT.sql
Один большой блок-комментарий — справочник по синтаксису SELECT/FROM/WHERE и всем операторам условия: сравнения, BETWEEN/NOT BETWEEN, IN/NOT IN, IS NULL/IS NOT NULL, LIKE с масками % и _ (включая BINARY для регистрозависимого поиска) и логические AND/OR/NOT со скобками. Завершается отдельной таблицей приоритета операций от NOT (высший) до XOR (низший) — без неё сложные условия с AND/OR читаются неоднозначно.
- Базовый синтаксис SELECT ... FROM ... WHERE ...;
- Операторы сравнения: =, <, >, <>(!=), <=, >=
- BETWEEN ... AND / NOT BETWEEN — диапазон значений
- IN / NOT IN — проверка вхождения в список
- IS NULL / IS NOT NULL
- LIKE с масками % и _, BINARY для учёта регистра
- AND, OR, NOT и скобки для приоритета
- Таблица приоритета операций: NOT → арифметика → сравнения → AND → OR → XOR
Что выводит: Файл не содержит исполняемых запросов — это чисто справочный комментарий (весь текст закомментирован /* ... */), выполнять в СУБД нечего.
/* Позволяет создавать запрос к базе данных
SELECT
* или (имена полей через запятую)
FROM
имя таблицы (обычно имя_базы.имя_таблицы)
WHERE
условие (условия)
; - точка с запятой, обязательный элемент завершения каждого запроса
Синтаксис | Функционал
========================|===============================================================
=, <, >, <> (!=), <=, >=| равен, меньше,больше,неравен,меньше или равно,больше или равно
|
Показать файл целиком (62 строк)
/* Позволяет создавать запрос к базе данных
SELECT
* или (имена полей через запятую)
FROM
имя таблицы (обычно имя_базы.имя_таблицы)
WHERE
условие (условия)
; - точка с запятой, обязательный элемент завершения каждого запроса
Синтаксис | Функционал
========================|===============================================================
=, <, >, <> (!=), <=, >=| равен, меньше,больше,неравен,меньше или равно,больше или равно
|
|
BETWEEN ... AND, | значение в диапазоне, включая границы
NOT BETWEEN ... AND | (или значения ВНЕ диапазона)
| salary BETWEEN 2000 AND 3000
|
|
IN, NOT IN | значение в списке id IN (10, 20, 30)
| (или любые значения, кроме тех, что в списке)
|
|
IS NULL, IS NOT NULL | проверка наличия (или отсутствия) записей со значением NULL
|
|
LIKE, NOT LIKE | значение подходит по маске
| % - множество символов, включая пустую строку
| _ - строго один символ
| name LIKE '%k%' - все имена с символом k или K в середине name
|
| Если нужен фильтр с учётом регистра, используйте BINARY
| BINARY name LIKE 'K%' - вернёт имена, начинающиеся с заглавной K
|
|
AND, OR, NOT | логические И, ИЛИ, НЕ
|
() | указание приоритета
========================|===============================================================
ТАБЛИЦА ПРИОРИТЕТОВ
===========|============================|===============================
Приоритет | Операция | Описание
===========|============================|===============================
1 | NOT | Логическое отрицание
| |
2 | Арифметические операции | Выполнение математических
| (+, -, *, /, %) | вычислений
| |
3 | Операторы сравнения | Сравнение значений
| (=, !=, <, >, <=, >=) |
| |
4 | AND | Логическое "и"
| |
5 | OR | Логическое "или"
| |
6 | XOR | Исключающее "или"
===========|============================|==================================
*/