Операторы
Что такое операторы: определение, основные принципы, примеры и практические советы. Изучайте SQL для тестировщиков с подробными объяснениями для начинающих специалистов.
Операторы.
SELECT — Получение выборок данных из СУБД.
AS — Псевдоним.
DISTINCT — Исключение дубликатов.
WHERE — Когда требуется сделать выборку по определенному условию.
Операторы сравнения.
Оператор | Описание | Обозначение |
---|---|---|
Равенство | Если оба значения равны, то результат будет равен 1, иначе 0 | = |
Эквивалентность | Аналогичен оператору равенства, но NULL <=> NULL возвращает 1 | <=> |
Неравенство | Если оба значения не равны, то результат будет равен 1, иначе 0 | <> или != |
Меньше | Если одно значение меньше другого, то результат будет равен 1, иначе 0 | < |
Меньше или равно | Если одно значение меньше или равно другому, то результат будет равен 1, иначе 0 | <= |
Больше | Если одно значение больше другого, то результат будет равен 1, иначе 0 | > |
Больше или равно | Если одно значение больше или равно другому, то результат будет равен 1, иначе 0 | >= |
Логические операторы.
Оператор | Описание | Примеры применения |
---|---|---|
NOT | Меняет значение оператора на противоположный | NOT (age > 18) - возраст НЕ больше 18 |
OR | Истинно, если хотя бы одно условие истинно | age > 18 OR status = 'active' - возраст больше 18 ИЛИ статус активный |
AND | Истинно, если оба условия истинны | age > 18 AND status = 'active' - возраст больше 18 И статус активный |
XOR | Истинно, если только одно из условий истинно | age > 18 XOR status = 'active' - либо возраст, либо статус |
IS NULL — Позволяет узнать равно ли проверяемое значение NULL, т.е. пустое ли значение.
BETWEEN — Позволяет узнать расположено ли проверяемое значение столбца в интервале между min и max, включая сами значения min и max.
IN — Позволяет узнать входит ли проверяемое значение столбца в список определённых значений.
LIKE — Используется при условных запросах, чтобы узнать соответствует ли строка определённому шаблону.
Символы оператора LIKE
Символ | Описание | Пример |
---|---|---|
% | Последовательность любых символов (0 или более) | %test% найдет “test”, “mytest”, “testing” |
_ | Любой единичный символ | t_st найдет “test”, “tost”, “t1st” |
Оператор REGEXP (синоним RLIKE) — используется для поиска и обработки строковых данных с помощью регулярных выражений.
Важные нюансы:
-
Регистронезависимость. По умолчанию регулярные выражения в MySQL не чувствительны к регистру. Например, выражение REGEXP ‘abc’ найдёт строку и abc, и Abc, и ABC.
-
Специальные символы. Некоторые символы имеют особое значение в регулярных выражениях и требуют экранирования (например, ., *, +, ?, [,], (, ), {, }, |, \). Для экранирования используется обратная косая черта \.
Регулярные выражения (REGEXP).
Символ/структура | Описание | Пример |
---|---|---|
* | 0 или более экземпляров предшествующей строки | a* найдет ”, “a”, “aa”, “aaa” |
+ | 1 или более экземпляров предшествующей строки | a+ найдет “a”, “aa”, “aaa” |
. | Любой одиночный символ | t.st найдет “test”, “tost”, “t1st” |
? | 0 или 1 экземпляр предшествующей строки | a? найдет ”, “a” |
^ | Соответствует началу строки | ^test найдет “test”, “testing” |
$ | Соответствует окончанию строки | test$ найдет “test”, “mytest” |
[abc] | Любой символ, указанный в квадратных скобках | [abc] найдет “a”, “b”, “c” |
[^abc] | Любой символ, не указанный в квадратных скобках | [^abc] найдет “d”, “e”, “f” |
[A-Z] | Любая заглавная латинская буква | [A-Z] найдет “A”, “B”, “Z” |
[а-я] | Любая заглавная кириллическая буква | [А-Я] найдет “А”, “Б”, “Я” |
[a-z] | Любая строчная латинская буква | [a-z] найдет “a”, “b”, “z” |
[а-я] | Любая строчная кириллическая буква | [а-я] найдет “а”, “б”, “я” |
[0-9] | Любая цифра | [0-9] найдет “0”, “1”, “9” |
p1|p2|p3 | Соответствует любому из паттернов | cat|dog найдет “cat” или “dog” |
{n} | n экземпляров предыдущей строки | a{3} найдет “aaa” |
{m,n} | От m до n экземпляров предыдущей строки | a{2,4} найдет “aa”, “aaa”, “aaaa” |
- ORDER BY — Сортировка.
- ASC — Сортировка по возрастанию (по умолчанию).
- DESC — Сортировка по убыванию.