Ранее мы видели, что текущую дату, месяц и год можно вывести с помощью аргумента CURRENT_DATE предложений DAYOFMONTH(), MONTH() и YEAR(), соответственно. То же самое можно использовать для выборки данных из таблиц.
Вывести идентификаторы, даты рождения и адреса e-mail сотрудников, родившихся в апреле.
Вывести идентификаторы, даты рождения и имена супругов сотрудников, родившихся в 1968 г., и отсортируйте записи на основе имен их супругов.
Выведите идентификаторы сотрудников, родившихся в текущем месяце.
Сколько в базе данных имеется уникальных годов рождения?
Вывести список уникальных годов рождения и число сотрудников, родившихся в каждом таком году.
Сколько сотрудников родились в каждом месяце? Выдача должна содержать названия месяцев (не номера), и записи должны быть упорядочены по убыванию по месяцам, начиная от наибольшего номера.
1. mysql> select e_id, birth_date, p_email2. -> from employee_per3. -> where month(birth_date) = 4;
4. Результат запроса представлен на рис. 9.12.
Рис. 9.12. Сотрудники, родившиеся в апреле
или
mysql> select e_id, birth_date, p_email -> from employee_per -> where MONTHNAME(birth_date) = 'April';
Результат аналогичен рис. 9.12.
5. mysql> select e_id, birth_date, s_name6. -> from employee_per where7. -> YEAR(birth_date) = 19688. -> ORDER BY s_name;
9. Результат запроса представлен на рис. 9.13.
Рис. 9.13. Сотрудники 1968 года рождения, с сортировкой по именам
Примечание: Значение NULL показано в самом верху. Более подробно значение NULL будет рассмотрено ниже.
10. mysql> select e_id from employee_per11. -> where month(birth_date) = month(current_date);
12. Результат запроса представлен на рис. 9.14.
Рис. 9.14. Сотрудники родившиеся в этом месяце
13. mysql> select distinct year(birth_date) from employee_per;
14. Результат запроса представлен на рис. 9.15.
Рис. 9.15. Уникальные годы рождения
15. mysql> select year(birth_date) as Year,16. -> count(*) from employee_per17. -> GROUP BY Year;
18. Результат запроса представлен на рис. 9.16.
Рис. 9.16. Количество сотрудников, родившихся в каждом году
19. mysql> select MONTHNAME(birth_date) AS Month,20. -> count(*) AS Number21. -> from employee_per22. -> GROUP BY Month23. -> ORDER BY Number DESC;
24. Результат запроса представлен на рис. 9.17.
Рис. 9.17. Количество сотрудников, родившихся в каждом месяце