- •Лабораторные работы 1,2.
- •1. 1. Основные характеристики субд MySql.
- •1.2. Установка MySql
- •Проверка исходных требований
- •Выбор версии
- •1.4.Основные команды создания баз данных, основы работы с таблицами
- •Создание базы данных в Windows
- •Удаление баз данных.
- •1. 5. Типы данных столбцов
- •Требования к памяти для символьных типов приведены в таблице.
- •2.1. Запись данных в таблицы
- •В системе Windows
- •2.2. Запрос данных из таблицы MySql select
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Поиск текстовых данных по шаблону с помощью предложения where и оператора like.
- •2.3. Логические операторы
- •Операторы in и between
- •2.4 Команды обработки данных: поиск максимального, минимального и среднего значений, нахождение суммы и количества записей Поиск минимального и максимального значений
- •Именование столбцов as
- •Подсчет числа записей
- •Предложения group by и having
- •Удаление записей из таблицы
- •Упорядочивание данных order by
- •Ограничение количества извлекаемых данных
- •Ключевое слово distinct
- •Вложенные запросы
- •Изменение записей update
- •3.1. Математические функции MySql
- •3.2.Работа с датой и временем
- •3.3. Работа со строками
- •Insert(строка, позиция, длина, новая_строка)
- •Instr(строка, подстрока)
- •Функции сравнения строк
- •3.4. Дополнительные функции MySql
- •Битовые функции
- •Прочие функции
- •3.3.4.9 Использование нескольких таблиц
- •3.3.4.6 Работа с значениями null
- •3.3.4.9 Использование нескольких таблиц
- •Делаем дамп (бэкап) базы данных, используя утилиту mysqldump
3.2.Работа с датой и временем
Особенности типа данных Date. Функции для работы с датой.
Даты в MySQL всегда представлены с годом, за которым следует месяц и затем день месяца. Даты часто записывают в виде YYYY-MM-DD, где YYYY -- 4 цифры года, MM -- 2 цифры месяца и DD -- 2 цифры дня месяца.
Тип столбца даты позволяет выполнять несколько операций, таких как сортировка, проверка условий с помощью операторов сравнения и т.д.
Примечание: MySQL требует, чтобы даты были заключены в кавычки
Использование операторов = и !=
Поиск по дате рождения
select p_email, phone from employee_per where birth_date = '1969-12-31';
Использование операторов >= и <=
Поиск по дате рождения с использованием оператора >=
select e_id, birth_date from employee_per where birth_date >= '1970-01-01';
Определение диапазонов
select e_id, birth_date from employee_per
where birth_date BETWEEN'1969-01-01' AND '1974-01-01';
Тот же запрос можно представить без конструкции BETWEEN:
select e_id, birth_date from employee_per
where birth_date >= '1969-01-01' AND birth_date <= '1974-01-01';
Использование Date для сортировки данных
select e_id, birth_date from employee_per ORDER BY birth_date;
Выбор данных с помощью Date.
DAY(date) и DAYOFMONTH(date) функции-синонимы, возвращают из даты порядковый номер дня месяца.
SELECT DAY('2011-04-17'), DAYOFMONTH('2011-04-17');
MONTH(date) и MONTHNAME(date) обе функции возвращают значения месяца. Первая - его числовое значение (от 1 до 12), вторая - название месяца:
Примеры:
Вот как можно выбрать сотрудников, которые родились в марте.
select e_id, birth_date from employee_per where MONTH(birth_date) = 3
Можно также использовать вместо чисел названия месяцев.
select e_id, birth_date from employee_per where (birth_date) = 'January';
Будьте внимательны при использовании названий месяцев, так как они различают регистр символов. Поэтому January будет работать, а JANUARY не будет
YEAR(date) функция возвращает значение года (от 1000 до 9999).
SELECT YEAR('2011-04-17');
DAYOFYEAR(date) возвращает порядковый номер дня в году (от 1 до 366).
Пример:
Нужно выбрать сотрудников, родившихся в определенный год или в определенный день.
Поиск по году рождения
select e_id, birth_date from employee_per where year(birth_date) = 1972;
Поиск по дню рождения
select e_id, birth_date from employee_per where DAYOFMONTH(birth_date) = 20
ADDDATE(date, INTERVAL value) Функция возвращает дату date, к которой прибавлено значение value. Значение value может быть отрицательным, тогда итоговая дата уменьшится. В качестве значения value могут выступать не только дни, но и недели (WEEK), месяцы (MONTH), кварталы (QUARTER) и годы (YEAR).
Пример:
SELECT ___, ADDDATE(date_incoming, INTERVAL -1 WEEK)FROM ___WHERE__;
SUBDATE(date, INTERVAL value) функция идентична предыдущей, но производит операцию вычитания, а не сложения.
PERIOD_ADD(period, n) функция добавляет n месяцев к значению даты period. Нюанс: значение даты должно быть представлено в формате YYYYMM. Давайте к февралю 2011 (201102) прибавим 2 месяца: SELECT PERIOD_ADD(201102, 2);.
TIMEDIFF(date1, date2) вычисляет разницу в часах, минутах и секундах между двумя датами.
DATEDIFF(date1, date2) вычисляет разницу в днях между двумя датами.
PERIOD_DIFF(period1, period2) функция вычисляет разницу в месяцах между двумя датами, представленными в формате YYYYMM.
SUBTIME(date, time) функция вычитает из времени date время time:
DATE(datetime) возвращает дату, отсекая время.
Пример:
SELECT SUBTIME('2011-04-18 23:17:00', '02:15:30');
TIME(datetime) возвращает время, отсекая дату.
TO_DAYS(date) и FROM_DAYS(n) взаимообратные функции. Первая преобразует дату в количество дней, прошедших с нулевого года. Вторая, наоборот, принимает число дней, прошедших с нулевого года и преобразует их в дату:
MAKEDATE(year, n) функция принимает год и номер дня в году и преобразует их в дату:
Текущие даты
Текущую дату, месяц и год можно вывести с помощью аргумента CURRENT_DATE предложений DAYOFMONTH(), MONTH() и YEAR(),
То же можно использовать для выборки данных из таблиц
Пример:
Поиск по текущему месяцу
select e_id, birth_date from employee_per
where MONTH(birth_date) = MONTH(CURRENT_DATE);
CURDATE(), CURTIME() и NOW() Первая функция возвращает текущую дату, вторая - текущее время, а третья - текущую дату и время. Функции CURDATE() и NOW() удобно использовать для добавления в базу данных записей, использующих текущее время
Пример: SELECT CURDATE(), CURTIME(), NOW();
