До сих пор мы имели дело с текстом ( varchar ) и числами ( int ). Чтобы понять тип данных date (дата) создадим еще одну таблицу, аналогично тому, как была создана первая таблица.
Создадим в текстовом редакторе файл employee_per.dat, который содержит оператор создания таблицы CREATE следующего вида:
CREATE TABLE employee_per (
e_id int unsigned not null primary key, -- идентификационный номер
address varchar(60), -- адрес
phone int, -- номер телефона
p_email varchar(60), -- адрес e-mail
birth_date DATE, -- дата рождения
sex ENUM('M', 'F'), -- пол
m_status ENUM('Y','N'), -- статус
s_name varchar(40), -- имя
children int); -- количество детей
и последовательность операторов INSERT, например, такого вида. Количество записей может быть произвольно.
INSERT INTO employee_per (e_id, address, phone, p_email, birth_date, sex, m_status, s_name, children) values (1, 'Арбат, 12', 7176167, 'anna@yandex.ru', '1972-03-16', 'F', 'Y', 'Анна Петрова', 2);
Затем загрузим этот файл, как мы делали раньше, в базу данных.
В системе 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, если детей нет)
Даты в 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 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.
mysql> select e_id, birth_date
-> from employee_per
-> where birth_date <= '1964-12-31';
mysql> select e_id, birth_date
-> from employee_per
-> where birth_date >= '1970-01-01'
-> and birth_date <= '1972-12-31';
Результат запроса представлен на рис. 9.5.
(рис 9.5) Поиск по дате рождения в определенном диапазонеselect e_id, birth_date from employee_per ORDER BY birth_date;
Результат запроса представлен на рис. 9.6.
(рис 9.6) Поиск по дате рождения в определенном диапазонеВот как можно выбрать сотрудников, которые родились в марте.
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) Поиск по текущему месяцуmysql> select e_id, birth_date, p_email
-> from employee_per
-> 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.
mysql> select e_id, birth_date, s_name
-> from employee_per where
-> YEAR(birth_date) = 1968
-> ORDER BY s_name;
Результат запроса представлен на рис. 9.13.
(рис 9.13) Сотрудники 1968 года рождения, с сортировкой по именамПримечание: Значение NULL показано в самом верху. Более подробно значение NULL будет рассмотрено ниже.
mysql> select e_id from employee_per
-> where month(birth_date) = month(current_date);
Результат запроса представлен на рис. 9.14.
(рис 9.14) Сотрудники родившиеся в этом месяцеmysql> select distinct year(birth_date) from employee_per;
Результат запроса представлен на рис. 9.15.
(рис 9.15) Уникальные годы рожденияmysql> select year(birth_date) as Year,
-> count(*) from employee_per
-> GROUP BY Year;
Результат запроса представлен на рис. 9.16.
(рис 9.16) Количество сотрудников, родившихся в каждом годуmysql> select MONTHNAME(birth_date) AS Month,
-> count(*) AS Number
-> from employee_per
-> GROUP BY Month
-> ORDER BY Number DESC;
Результат запроса представлен на рис. 9.17.
(рис 9.17) Количество сотрудников, родившихся в каждом месяцеВ этой лекции мы уже встречались с типом 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) Сотрудники, имеющие детейПриведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети.
mysql> select e_id, s_name
-> from employee_per
-> where m_status = 'Y';
или
mysql> select e_id, s_name
-> from employee_per
-> where s_name IS NOT NULL;
mysql> select e_id, s_name
-> from employee_per
-> where m_status = 'Y'
-> ORDER BY s_name;
mysql> select e_id, s_name
-> from employee_per
-> where s_name IS NOT NULL
-> ORDER BY s_name;
mysql> select sex, count(*)
-> from employee_per
-> GROUP BY sex;
mysql> select m_status, count(*)
-> from employee_per
-> GROUP BY m_status;
mysql> select sum(children) from employee_per;
mysql> select children, count(*) AS
-> number from employee_per
-> GROUP BY children
-> ORDER BY number DESC;
До сих пор мы имели дело с текстом ( varchar ) и числами ( int ). Чтобы понять тип данных date (дата) создадим еще одну таблицу, аналогично тому, как была создана первая таблица.
Создадим в текстовом редакторе файл employee_per.dat, который содержит оператор создания таблицы CREATE следующего вида:
CREATE TABLE employee_per (
e_id int unsigned not null primary key, -- идентификационный номер
address varchar(60), -- адрес
phone int, -- номер телефона
p_email varchar(60), -- адрес e-mail
birth_date DATE, -- дата рождения
sex ENUM('M', 'F'), -- пол
m_status ENUM('Y','N'), -- статус
s_name varchar(40), -- имя
children int); -- количество детей
и последовательность операторов INSERT, например, такого вида. Количество записей может быть произвольно.
INSERT INTO employee_per (e_id, address, phone, p_email, birth_date, sex, m_status, s_name, children) values (1, 'Арбат, 12', 7176167, 'anna@yandex.ru', '1972-03-16', 'F', 'Y', 'Анна Петрова', 2);
Затем загрузим этот файл, как мы делали раньше, в базу данных.
В системе 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, если детей нет)
Даты в 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 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.
mysql> select e_id, birth_date
-> from employee_per
-> where birth_date <= '1964-12-31';
mysql> select e_id, birth_date
-> from employee_per
-> where birth_date >= '1970-01-01'
-> and birth_date <= '1972-12-31';
Результат запроса представлен на рис. 9.5.
(рис 9.5) Поиск по дате рождения в определенном диапазонеselect e_id, birth_date from employee_per ORDER BY birth_date;
Результат запроса представлен на рис. 9.6.
(рис 9.6) Поиск по дате рождения в определенном диапазонеВот как можно выбрать сотрудников, которые родились в марте.
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) Поиск по текущему месяцуmysql> select e_id, birth_date, p_email
-> from employee_per
-> 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.
mysql> select e_id, birth_date, s_name
-> from employee_per where
-> YEAR(birth_date) = 1968
-> ORDER BY s_name;
Результат запроса представлен на рис. 9.13.
(рис 9.13) Сотрудники 1968 года рождения, с сортировкой по именамПримечание: Значение NULL показано в самом верху. Более подробно значение NULL будет рассмотрено ниже.
mysql> select e_id from employee_per
-> where month(birth_date) = month(current_date);
Результат запроса представлен на рис. 9.14.
(рис 9.14) Сотрудники родившиеся в этом месяцеmysql> select distinct year(birth_date) from employee_per;
Результат запроса представлен на рис. 9.15.
(рис 9.15) Уникальные годы рожденияmysql> select year(birth_date) as Year,
-> count(*) from employee_per
-> GROUP BY Year;
Результат запроса представлен на рис. 9.16.
(рис 9.16) Количество сотрудников, родившихся в каждом годуmysql> select MONTHNAME(birth_date) AS Month,
-> count(*) AS Number
-> from employee_per
-> GROUP BY Month
-> ORDER BY Number DESC;
Результат запроса представлен на рис. 9.17.
(рис 9.17) Количество сотрудников, родившихся в каждом месяцеВ этой лекции мы уже встречались с типом 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) Сотрудники, имеющие детейПриведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети.
mysql> select e_id, s_name
-> from employee_per
-> where m_status = 'Y';
или
mysql> select e_id, s_name
-> from employee_per
-> where s_name IS NOT NULL;
mysql> select e_id, s_name
-> from employee_per
-> where m_status = 'Y'
-> ORDER BY s_name;
mysql> select e_id, s_name
-> from employee_per
-> where s_name IS NOT NULL
-> ORDER BY s_name;
mysql> select sex, count(*)
-> from employee_per
-> GROUP BY sex;
mysql> select m_status, count(*)
-> from employee_per
-> GROUP BY m_status;
mysql> select sum(children) from employee_per;
mysql> select children, count(*) AS
-> number from employee_per
-> GROUP BY children
-> ORDER BY number DESC;
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.