Оператор SQL LIKE устанавливает соответствие символьной строки с шаблоном.
Оператор SQL LIKE имеет следующий синтаксис:
expression [ NOT ] LIKE pattern
где, expression — любое символьное выражение
pattern — шаблон, по которому будет происходить проверка выражения expression. Шаблон может включать в себя следующие спец. символы:
Символ | Описание | Примеры |
% | Строка любой длины | Пример 1 |
_ | Любой одиночный символ | Пример 2 |
[] | Диапазон или последовательность символов |
Пример 3 |
[^] | Исключающий диапазон или последовательность символов |
Пример 4 |
Примеры оператора SQL LIKE: Имеется следующая таблица Universities:
ID | UniversityName | Students | Faculties | Professores | Location | Site |
1 | Perm State National Research University | 12400 | 12 | 1229 | Perm | psu.ru |
2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |
3 | Novosibirsk State University | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
4 | Moscow State University | 35100 | 39 | 14358 | Moscow | msu.ru |
5 | Higher School of Economics | 20335 | 12 | 1615 | Moscow | hse.ru |
6 | Ural Federal University | 57000 | 19 | 5640 | Yekaterinburg | urfu.ru |
7 | National Research Nuclear University | 8600 | 10 | 936 | Moscow | mephi.ru |
Пример 1. С помощью оператора SQL LIKE вывести записи университетов, имеющих в своем названии слово «State»:
SELECT * FROM Universities WHERE UniversityName LIKE '%State%'
Результат:
ID | UniversityName | Students | Faculties | Professores | Location | Site |
1 | Perm State National Research University | 12400 | 12 | 1229 | Perm | psu.ru |
2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |
3 | Novosibirsk State University | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
4 | Moscow State University | 35100 | 39 | 14358 | Moscow | msu.ru |
В этом примере, в качестве шаблона оператора SQL LIKE послужил ‘%State%’. Исходя из условия задачи, слово State может стоять в названии где угодно, поэтому оно обрамлено символом «%», обозначающим строку любой длины перед и после слова.
Пример 2. С помощью оператора SQL LIKE вывести записи университетов, доменное имя сайта которых содержит 4 символа (за исключением домена .ru):
SELECT * FROM Universities WHERE Site LIKE '____.ru'
Результат:
ID | UniversityName | Students | Faculties | Professores | Location | Site |
2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |
6 | Ural Federal University | 57000 | 19 | 5640 | Yekaterinburg | urfu.ru |
Пример 3. С помощью оператора SQL LIKE вывести записи университетов, первая буква доменного имени сайта которых содержит буквы из диапазона [k-o]:
SELECT * FROM Universities WHERE Site LIKE '[k-o]%'
Результат:
ID | UniversityName | Students | Faculties | Professores | Location | Site |
3 | Novosibirsk State University | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
4 | Moscow State University | 35100 | 39 | 14358 | Moscow | msu.ru |
7 | National Research Nuclear University | 8600 | 10 | 936 | Moscow | mephi.ru |
Пример 4. С помощью оператора SQL LIKE вывести записи университетов, вторая буква названия города которых, не входит в диапазон [e-o]:
SELECT * FROM Universities WHERE Location LIKE '_[^e-o]%'
Результат:
ID | UniversityName | Students | Faculties | Professores | Location | Site |
2 | Saint Petersburg State University | 21300 | 24 | 13126 | Saint-Petersburg | spbu.ru |