Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по разработка и эксплуатации ИС.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
48.85 Mб
Скачать

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

  1. mysql> select e_id, birth_date, p_email

  2. -> from employee_per

  3. -> 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.

  1. mysql> select e_id, birth_date, s_name

  2. -> from employee_per where

  3. -> YEAR(birth_date) = 1968

  4. -> ORDER BY s_name;

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

Рис. 9.13.  Сотрудники 1968 года рождения, с сортировкой по именам

Примечание: Значение NULL показано в самом верху. Более подробно значение NULL будет рассмотрено ниже.

  1. mysql> select e_id from employee_per

  2. -> where month(birth_date) = month(current_date);

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

Рис. 9.14.  Сотрудники родившиеся в этом месяце

  1. mysql> select distinct year(birth_date) from employee_per;

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

Рис. 9.15.  Уникальные годы рождения

  1. mysql> select year(birth_date) as Year,

  2. -> count(*) from employee_per

  3. -> GROUP BY Year;

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

Рис. 9.16.  Количество сотрудников, родившихся в каждом году

  1. mysql> select MONTHNAME(birth_date) AS Month,

  2. -> count(*) AS Number

  3. -> from employee_per

  4. -> GROUP BY Month

  5. -> ORDER BY Number DESC;

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

Рис. 9.17.  Количество сотрудников, родившихся в каждом месяце

Тип столбца Null

В этой лекции мы уже встречались с типом NULL. Теперь рассмотрим его подробнее.

Тип столбца NULL является специальным значением. Чтобы вставить значение NULL, удалите просто имя столбца из оператора INSERT. Столбцы содержат NULL по умолчанию, если только не определены как NOT NULL. Значение null может использоваться для целочисленных, а также текстовых или двоичных данных.

NULL нельзя сравнивать с помощью арифметических операторов. Сравнение для NULL можно делать с помощью IS NULL или IS NOT NULL.

select e_id, children

from employee_per

where children IS NOT NULL;

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

Рис. 9.18.  Сотрудники, имеющие детей

Приведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети.

Задания

  1. Найти и вывести идентификаторы и имена супругов всех сотрудников, которые состоят в браке.

  2. Изменить предыдущее задание так, чтобы вывод был отсортирован по именам супругов.

  3. Сколько имеется сотрудников каждого пола (мужчин и женщин)?

  4. Сколько сотрудников состоят в браке, и сколько холостых?

  5. Найдите общее число детей.

  6. Сделайте уникальные группы по количеству детей и определите число детей каждой группы. Отсортируйте вывод групп по убыванию по количеству детей.

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

  1. mysql> select e_id, s_name

  2. -> from employee_per

  3. -> where m_status = 'Y';

  4. или

  5. mysql> select e_id, s_name

  6. -> from employee_per

  7. -> where s_name IS NOT NULL;

  8. mysql> select e_id, s_name

  9. -> from employee_per

  10. -> where m_status = 'Y'

  11. -> ORDER BY s_name;

  12. mysql> select e_id, s_name

  13. -> from employee_per

  14. -> where s_name IS NOT NULL

  15. -> ORDER BY s_name;

  16. mysql> select sex, count(*)

  17. -> from employee_per

  18. -> GROUP BY sex;

  19. mysql> select m_status, count(*)

  20. -> from employee_per

  21. -> GROUP BY m_status;

  22. mysql> select sum(children) from employee_per;

  23. mysql> select children, count(*) AS

  24. -> число from employee_per

  25. -> GROUP BY children

  26. -> ORDER BY number DESC;