Предикат SQL LIKE для поиска строки с заданными символами
Назад<<< | Содержание | Вперёд>>> |
Применение предиката LIKE с простыми условиями
Часто с помощью предиката SQL LIKE найти нужную строку в текстовых значениях таблицы проще, чем с помощью оператора равенства (=). Предикат LIKE используется в секции WHERE. После предиката прописывается выражение, содержащее символы алфавита, а также специальные символы - знак процента (%) и подчёркивание (_).
- Символ % соответствует любому количеству любых символов, а также их отсутствую.
- Символ _ соответствует ровно одному любому символу.
Приведём виды наиболее распространённых выражений, которые используются с предикатом LIKE для поиска подстроки.
- 'xyz%' - любые строки, которые начинаются с букв xyz;
- 'xyz_' - строка длиной в определённое количество символов, которая обязательно начинается с указанных букв;
- '%z' - любая последовательность символов, которая заканчивается символом z;
- '%Word%' - любая последовательность символов, содержащая слово 'Word' в любой позиции строки;
- '% % %' - строка, содержащая не менее двух пробелов.
Следует обратить внимание, что в этих выражениях Word - не то же самое, что word, так как регистр символов имеет значение. В целом же синтаксис запросов с предикатом LIKE следующий:
В примерах будем работать с базой данных "Театр". Таблица Play содержит данные о постановках. Таблица Team - о ролях актёров. Таблица Actor - об актёрах. Таблица Director - о режиссёрах. Поля таблиц, первичные и внешние ключи можно увидеть на рисунке ниже (для увеличения нажать левой кнопкой мыши). Данные будем извлекать из одной таблицы - Play.

Пример 1. Вывести спектакли, названия которых начинаются со слова 'King'.
Пишем запрос в котором с предикатом LIKE используем выражение 'King%':
В результате выполнения запроса будет выведена таблица с одной строкой:
King Lear |
Пример 2. Вывести спектакли, названия которых начинаются с буквы 'O' и содержат 7 символов.
Пишем запрос в котором с предикатом LIKE используем выражение 'O______' (подчёркивание проставлено 6 раз):
В результате выполнения запроса будет выведена таблица с одной строкой:
Othello |
Пример 3. Вывести спектакли, названия которых заканчиваются буквой 'a'.
Пишем запрос в котором с предикатом LIKE используем выражение '%a' (подчёркивание проставлено 6 раз):
В результате выполнения запроса будет выведена таблица со следующими строками:
Matilda |
Antony and Cleopatra |
Можно увидеть и запрос, в котором вводится дополнительное условие: название должно заканчиваться на 'a', но не на 'ra'.
Пример 4. Вывести спектакли, в названии которых содержится слово "War", например, такие как "The War That Never Ends", "The Wars of the Roses", но не "Howards End".
Пишем запрос в котором с предикатом LIKE используем выражение '%War%':
В результате выполнения запроса будет выведена таблица:
The Wars of the Roses |
The War That Never Ends |
Можно увидеть и запрос, в котором вводится дополнительное условие: название должно содержать "War", но не 'Wars'.
Пример 5. Вывести спектакли, в названиях которых содержится не менее пяти пробелов.
Пишем запрос в котором с предикатом LIKE используем выражение '% % % % % %':
В результате выполнения запроса будет выведена таблица:
Jeeves and Wooster in Perfect Nonsense |
All s Well That Ends Well |
Morte d Arthur - Sir Thomas Malory |
Можно увидеть и запрос, в котором есть составное условие: название должно начинаться с "M" и содеражать тире (" - ").
Назад<<< | Содержание | Вперёд>>> |
Поделиться с друзьями