Опубликован: 16.01.2007 | Уровень: для всех | Доступ: свободно
Лекция 5:

Работа с таблицами. Внесение, извлечение, поиск и удаление данных

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >

Поиск текстовых данных по шаблону

В данной части мы рассмотрим поиск текстовых данных по шаблону с помощью предложения where и оператора LIKE.

Оператор сравнения на равенство ( = ) помогает выбрать одинаковые строки. Таким образом, чтобы перечислить имена сотрудников, которых зовут Иван, можно воспользоваться следующим оператором SELECT.

select f_name, l_name from employee_data where f_name = "Иван";

Результат запроса приведен на рис. 5.12.

Результат поиска сотрудников, которых зовут Иван

Рис. 5.12. Результат поиска сотрудников, которых зовут Иван

Как быть, если надо вывести данные о сотрудниках, имя которых начинается с буквы В? Язык SQL позволяет выполнить поиск строковых данных по шаблону. Для этого в предложении where используется оператор LIKE следующим образом.

select f_name, l_name from employee_data where f_name LIKE "В%";

Результат запроса приведен на рис. 5.13.

Результат поиска сотрудников, имя которых начинается с буквы В

Рис. 5.13. Результат поиска сотрудников, имя которых начинается с буквы В

Можно видеть, что здесь в условии вместо знака равенства используется LIKE и знак процента в шаблоне.

Знак % действует как символ-заместитель (аналогично использованию * в системах DOS и Linux). Он заменяет собой любую последовательность символов. Таким образом "В%" обозначает все строки, которые начинаются с буквы В. Аналогично "%В" выбирает строки, которые заканчиваются символом В, а "%В%" строки, которые содержат букву В.

Давайте выведем, например, всех сотрудников, которые имеют в названии должности строку "про".

select f_name, l_name, title from employee_data
where title like '%про%';

Результат запроса приведен на рис. 5.14.

Результат поиска сотрудников, в названии должности которых содержится строка "про"

Рис. 5.14. Результат поиска сотрудников, в названии должности которых содержится строка "про"

Перечислим всех сотрудников, имена которых заканчиваются буквой 'а'. Это очень просто сделать.

mysql> select f_name, l_name from employee_data
where f_name like '%a';

Результат запроса приведен на рис. 5.15.

Результат поиска сотрудников, имена которых заканчиваются буквой 'а'

Рис. 5.15. Результат поиска сотрудников, имена которых заканчиваются буквой 'а'

Задания

1. Перечислить всех сотрудников, фамилии которых начинаются с буквы P.

2. Вывести имена всех сотрудников в отделе продаж.

3. Что выведет следующий оператор

SELECT f_name, l_name, salary from
employee_data where f_name like '%к%';

4. Перечислить фамилии и должности всех программистов

Возможные решения

1. select l_name, f_name from employee_data where l_name like 'P%';

2. select f_name, l_name from employee_data where title like '%продавец%';

3. Этот оператор выводит имена, фамилии и заплаты всех сотрудников, у которых имя содержит букву 'к'.

SELECT f_name, l_name, salary from employee_data where f_name like '%к%';

4. SELECT l_name, title from employee_data where title like '%программист%';

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >
Александра Каева
Александра Каева
Диляра Кенжебай
Диляра Кенжебай