| Работа с датой в MySQL |
|
|
| Автор Westry | |
| 11.12.2007 г. | |
|
В лекции рассматриваются команды работы с датой и временем в MySql. Создадим в текстовом редакторе файл employee_per.dat, который содержит оператор создания таблицы CREATE следующего вида: CREATE TABLE employee_per ( и последовательность операторов INSERT, например, такого вида. Количество записей может быть произвольно. INSERT INTO employee_per (e_id, address, phone, p_email, Затем загрузим этот файл, как мы делали раньше, в базу данных. В системе Windows 1). Поместите файл в каталог c:\MySql\bin. 2). Выполните в приглашении DOS команду. dosprompt> MySql employees <employee_per.dat 3). Запустите программу клиента MySql и проверьте, что таблица была создана, с помощью команды SHOW TABLES;. В системе Linux 1). Перейдите в каталог, в котором находится файл. 2). В приглашении введите следующую команду: $prompt> MySql employees <employee_per.dat -u your_username -p 3). Проверьте, что таблица была создана с помощью команды SHOW TABLES; в программе клиента MySql. Данные таблицы можно вывести с помощью команды DESCRIBE. MySql> DESCRIBE employee_per; Результат запроса представлен на рис. 9.1. ![]() Рис. 9.1. Просмотр данных таблицы Обратите внимание, что столбец birth_date имеет тип столбца date (дата). Здесь также присутствует еще один новый тип столбца ENUM, который был рассмотрен в лекции 4. e-id: идентификатор сотрудника, такой же как в таблице employee_data address: адрес сотрудника phone: номер телефона p_email: личный адрес e-mail birth_date: дата рождения sex: Пол сотрудника, мужской (M) или Женский (F) m_status: семейное положение, в браке (Y) или холост (N). s_name: Имя супруга (NULL, если сотрудник холост) children: Число детей (NULL, если детей нет) Особенности типа данных DateДаты в MySql всегда представлены с годом, за которым следует месяц и затем день месяца. Даты часто записывают в виде YYYY-MM-DD, где YYYY -- 4 цифры года, MM -- 2 цифры месяца и DD -- 2 цифры дня месяца. Операции с датамиТип столбца даты позволяет выполнять несколько операций, таких как сортировка, проверка условий с помощью операторов сравнения и т.д. Использование операторов = и !=select p_email, phone from employee_per where birth_date = '1969-12-31'; Результат запроса представлен на рис. 9.2. ![]() Рис. 9.2. Поиск по дате рождения Примечание: MySql требует, чтобы даты были заключены в кавычки. Использование операторов >= и <=select e_id, birth_date from employee_per where birth_date >= '1970-01-01'; Результат запроса представлен на рис. 9.3. ![]() Рис. 9.3. Поиск по дате рождения с использованием оператора >= Определение диапазоновselect e_id, birth_date Результат запроса представлен на рис. 9.4. ![]() Рис. 9.4. Поиск по дате рождения в определенном диапазоне Тот же запрос можно представить без конструкции BETWEEN: select e_id, birth_date Результат запроса будет аналогичен рис. 9.4. Задания
Возможные решения
Результат запроса представлен на рис. 9.5. ![]() Рис. 9.5. Поиск по дате рождения в определенном диапазоне Использование Date для сортировки данныхselect e_id, birth_date Результат запроса представлен на рис. 9.6. ![]() Рис. 9.6. Поиск по дате рождения в определенном диапазоне Выбор данных с помощью DateВот как можно выбрать сотрудников, которые родились в марте. select e_id, birth_date Результат запроса представлен на рис. 9.7. ![]() Рис. 9.7. Поиск по месяцу Можно также использовать вместо чисел названия месяцев. select e_id, birth_date Результат запроса представлен на рис. 9.8. ![]() Рис. 9.8. Использование названия месяца в поиске Будьте внимательны при использовании названий месяцев, так как они различают регистр символов. Поэтому January будет работать, а JANUARY не будет! Аналогично можно выбрать сотрудников, родившихся в определенный год или в определенный день. select e_id, birth_date Результат запроса представлен на рис. 9.9. ![]() Рис. 9.9. Поиск по году рождения select e_id, birth_date Результат запроса представлен на рис. 9.10. ![]() Рис. 9.10. Поиск по дате рождения Текущие датыРанее мы видели, что текущую дату, месяц и год можно вывести с помощью аргумента CURRENT_DATE предложений DAYOFMONTH(), MONTH() и YEAR(), соответственно. То же самое можно использовать для выборки данных из таблиц. select e_id, birth_date Результат запроса представлен на рис. 9.11. ![]() Рис. 9.11. Поиск по текущему месяцу Задания
Возможные решения
Тип столбца NullВ этой лекции мы уже встречались с типом NULL. Теперь рассмотрим его подробнее. Тип столбца NULL является специальным значением. Чтобы вставить значение NULL, удалите просто имя столбца из оператора INSERT. Столбцы содержат NULL по умолчанию, если только не определены как NOT NULL. Значение null может использоваться для целочисленных, а также текстовых или двоичных данных. NULL нельзя сравнивать с помощью арифметических операторов. Сравнение для NULL можно делать с помощью IS NULL или IS NOT NULL. select e_id, children Результат запроса представлен на рис. 9.18. ![]() Рис. 9.18. Сотрудники, имеющие детей Приведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети. Задания
Возможные решения
|
| « Пред. | След. » |
|---|




















