Определение диапазонов
select e_id, birth_date from employee_per where birth_date BETWEEN '1969-01-01' AND '1974-01-01'; Результат запроса представлен на рис. 9.4.
Рис. 9.4. Поиск по дате рождения в определенном диапазоне Тот же запрос можно представить без конструкции BETWEEN: select e_id, birth_date from employee_per where birth_date >= '1969-01-01' AND birth_date <= '1974-01-01'; Результат запроса будет аналогичен рис. 9.4. Задания
Возможные решения 1. mysql> select e_id, birth_date 2. -> from employee_per 3. -> where birth_date <= '1964-12-31'; 4. mysql> select e_id, birth_date 5. -> from employee_per 6. -> where birth_date >= '1970-01-01' 7. -> and birth_date <= '1972-12-31'; Результат запроса представлен на рис. 9.5.
Рис. 9.5. Поиск по дате рождения в определенном диапазоне Использование Date для сортировки данных select e_id, birth_date from employee_per ORDER BY birth_date; Результат запроса представлен на рис. 9.6.
Рис. 9.6. Поиск по дате рождения в определенном диапазоне Выбор данных с помощью Date Вот как можно выбрать сотрудников, которые родились в марте. select e_id, birth_date from employee_per where MONTH(birth_date) = 3; Результат запроса представлен на рис. 9.7.
Рис. 9.7. Поиск по месяцу Можно также использовать вместо чисел названия месяцев. select e_id, birth_date from employee_per where MONTHNAME(birth_date) = 'January'; Результат запроса представлен на рис. 9.8.
Рис. 9.8. Использование названия месяца в поиске Будьте внимательны при использовании названий месяцев, так как они различают регистр символов. Поэтому January будет работать, а JANUARY не будет! Аналогично можно выбрать сотрудников, родившихся в определенный год или в определенный день. select e_id, birth_date from employee_per where year(birth_date) = 1972; Результат запроса представлен на рис. 9.9.
Рис. 9.9. Поиск по году рождения select e_id, birth_date from employee_per where DAYOFMONTH(birth_date) = 20; Результат запроса представлен на рис. 9.10.
Рис. 9.10. Поиск по дате рождения Текущие даты Ранее мы видели, что текущую дату, месяц и год можно вывести с помощью аргумента CURRENT_DATE предложений DAYOFMONTH(), MONTH() и YEAR(), соответственно. То же самое можно использовать для выборки данных из таблиц. select e_id, birth_date from employee_per where MONTH(birth_date) = MONTH(CURRENT_DATE); Результат запроса представлен на рис. 9.11.
Рис. 9.11. Поиск по текущему месяцу Задания
Возможные решения 1. mysql> select e_id, birth_date, p_email 2. -> from employee_per 3. -> where month(birth_date) = 4; Результат запроса представлен на рис. 9.12.
Рис. 9.12. Сотрудники, родившиеся в апреле или mysql> select e_id, birth_date, p_email -> from employee_per -> where MONTHNAME(birth_date) = 'April'; Результат аналогичен рис. 9.12. 4. mysql> select e_id, birth_date, s_name 5. -> from employee_per where 6. -> YEAR(birth_date) = 1968 7. -> ORDER BY s_name; Результат запроса представлен на рис. 9.13.
Рис. 9.13. Сотрудники 1968 года рождения, с сортировкой по именам Примечание: Значение NULL показано в самом верху. Более подробно значение NULL будет рассмотрено ниже. 8. mysql> select e_id from employee_per 9. -> where month(birth_date) = month(current_date); Результат запроса представлен на рис. 9.14.
Рис. 9.14. Сотрудники родившиеся в этом месяце 10.mysql> select distinct year(birth_date) from employee_per; Результат запроса представлен на рис. 9.15.
Рис. 9.15. Уникальные годы рождения 11.mysql> select year(birth_date) as Year, 12. -> count(*) from employee_per 13. -> GROUP BY Year; Результат запроса представлен на рис. 9.16.
Рис. 9.16. Количество сотрудников, родившихся в каждом году 14.mysql> select MONTHNAME(birth_date) AS Month, 15. -> count(*) AS Number 16. -> from employee_per 17. -> GROUP BY Month 18. -> ORDER BY Number DESC; Результат запроса представлен на рис. 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. mysql> select e_id, s_name 2. -> from employee_per 3. -> where m_status = 'Y'; или mysql> select e_id, s_name -> from employee_per -> where s_name IS NOT NULL; 4. mysql> select e_id, s_name 5. -> from employee_per 6. -> where m_status = 'Y' 7. -> ORDER BY s_name; 8. 9. 10. mysql> select e_id, s_name 11. -> from employee_per 12. -> where s_name IS NOT NULL 13. -> ORDER BY s_name; 14.mysql> select sex, count(*) 15. -> from employee_per 16. -> GROUP BY sex; 17.mysql> select m_status, count(*) 18. -> from employee_per 19. -> GROUP BY m_status; 20.mysql> select sum(children) from employee_per; 21.mysql> select children, count(*) AS 22. -> number from employee_per 23. -> GROUP BY children 24. -> ORDER BY number DESC;
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (250)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |