Мегаобучалка Главная | О нас | Обратная связь


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



2019-12-29 215 Обсуждений (0)
Поиск текстовых данных по шаблону 0.00 из 5.00 0 оценок




В данной части мы рассмотрим поиск текстовых данных по шаблону с помощью предложения 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 '%программист%';

Предложение HAVING

Чтобы вывести среднюю зарплату сотрудников в различных подразделениях (должностях), используется предложение GROUP BY, например:

select title, AVG(salary)

from employee_data

GROUP BY title;

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

 

Рис. 5.16. Вывод средней зарплаты сотрудников по подразделениям

Предположим теперь, что требуется вывести только те подразделения, где средняя зарплата более 100000. Это можно сделать с помощью предложения HAVING.

select title, AVG(salary)

from employee_data

GROUP BY title

HAVING AVG(salary) > 100000;

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

 

Рис. 5.17. Вывод средней зарплаты определённого диапазона по подразделениям

Задание

Вывести подразделения и средний возраст, где средний возраст больше 30.

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

mysql> select title, AVG(age)

-> from employee_data

-> GROUP BY title

-> HAVING AVG(age) > 30;

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

 

Рис. 5.18. Вывод подразделения и среднего возраста, где средний возраст больше 30 лет



2019-12-29 215 Обсуждений (0)
Поиск текстовых данных по шаблону 0.00 из 5.00 0 оценок









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

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (215)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)