- •Разработка баз данных средствами MySql
- •Содержание
- •Введение
- •1. Основы работы в субд MySql
- •Системы управления базами данных
- •Основные характеристики MySql
- •Команда create database
- •Работа с таблицами
- •Синтаксис команды create table
- •Удаление таблиц
- •Синтаксис команды drop table
- •Типы данных
- •Числовые данные
- •Строковые данные
- •Календарные данные
- •Тип данных null
- •Выбор типа данных
- •1 Вариант.
- •2 Вариант.
- •3 Вариант.
- •2. Работа с таблицами. Ввод, извлечение, поиск и удаление данных Запись данных в таблицы
- •Заполните таблицу employee_data 5-10 записями. Запрос данных из таблицы MySql
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Поиск текстовых данных по шаблону
- •Предложение group by и having
- •Удаление записей из таблицы
- •Задание 1
- •Задание 2
- •Задание 3
- •3. Логические операции в MySql
- •Операторы in и between
- •Упорядочивание данных
- •Ограничение количества извлекаемых данных
- •Извлечение подмножеств
- •Ключевое слово distinct
- •Изменение записей
- •Задание 1
- •Задание 2
- •Задание 3
- •Вычисление среднего значения
- •Именование столбцов
- •Подсчет числа записей
- •Группировка данных
- •5. Математические функции в MySql. Строковые функции. Работа с датой Математические функции MySql
- •Строковые функции
- •Ascii(строка)
- •Concat(строка1, строка2, ...)
- •Особенности типа данных Date
- •Операции с датами
- •Определение диапазонов
- •Использование Date для сортировки данных
- •Выбор данных с помощью Date
- •Текущие даты
- •Тип столбца Null
- •Задание 1
- •Задание 2
- •Задание 3
- •6. Переменные и временные таблицы. Многотабличные запросы
- •7. Вложенные запросы в MySql
- •8. Хранимые процедуры и функции
- •9. Курсоры в MySql. Представления. Конструкции управления потоком данных
- •10. Анализ и моделирование предметной области
- •1. Выбор и текстовое описание предметной области
- •2. Разработка концептуальной er-модели предметной области
- •3. Определение функциональных требований
- •11. Проектирование базы данных
- •1. Создание логической реляционной модели базы данных
- •2. Нормализация логической реляционной модели базы данных
- •1Нф (Первая Нормальная Форма)
- •2Нф (Вторая Нормальная Форма)
- •3Нф (Третья Нормальная Форма)
- •12. Проектирование физической модели бд и ее реализация
- •1. Создание физической модели базы данных
- •2. Реализация физической модели базы данных в коде
- •13. Наполнение и тестирование бд
- •1. Наполнение базы данных
- •2. Тестирование базы данных
- •14. Создание приложения к бд в среде delphi 7, с использованием AnyDac framework 1.7.0
- •1. Начало работы
- •2. Связь с таблицами
- •3. Отображение таблицы на форме
- •4. Компонент adQuery
- •5. Экспорт данных в Excel
- •6. Работа с внешними ключами
- •Рекомендуемая литература
- •Разработка баз данных средствами MySql
- •460844, Г. Оренбург, ул. Советская, 19
Особенности типа данных Date
Даты в MySQL всегда представлены с годом, за которым следует месяц и затем день месяца. Даты часто записывают в виде YYYY-MM-DD, где YYYY -- 4 цифры года, MM -- 2 цифры месяца и DD -- 2 цифры дня месяца.
Операции с датами
Тип столбца даты позволяет выполнять несколько операций, таких как сортировка, проверка условий с помощью операторов сравнения и т.д.
Использование операторов = и !=
select p_email, phone from employee_per where birth_date = '1969-12-31';
Выведется e-mail адрес и телефон всех, кто родился 1969-12-31.
Примечание: MySQL требует, чтобы даты были заключены в кавычки.
Использование операторов >= и <=
select e_id, birth_date from employee_per where birth_date >= '1970-01-01';
Выведется идентификационный номер и дата рождения всех сотрудников, родившихся позже 1970-01-01.
Определение диапазонов
select e_id, birth_date
from employee_per where
birth_date BETWEEN
'1969-01-01' AND '1974-01-01';
Результат запроса выведет идентификационный номер и дни рождения всех сотрудников, родившихся в период от 1969-01-01 до 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
Вот как можно выбрать сотрудников, которые родились в марте.
select e_id, birth_date
from employee_per
where MONTH(birth_date) = 3;
Вместо номеров можно также использовать названия месяцев.
select e_id, birth_date
from employee_per
where MONTHNAME(birth_date) = 'January';
Будьте внимательны при использовании названий месяцев; регистр символов различается. Поэтому January будет работать, а JANUARY не будет!
Аналогично можно выбрать сотрудников, родившихся в определенный год или в определенный день.
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;
Текущие даты
Текущую дату, месяц и год можно вывести с помощью аргумента CURRENT_DATE предложений DAYOFMONTH(), MONTH() и YEAR(), соответственно.
select e_id, birth_date
from employee_per where
MONTH(birth_date) = MONTH(CURRENT_DATE);
Запрос выводит идентификационный номер и дату рождения всех сотрудников, родившихся в текущем месяце.
Тип столбца 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;
Приведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети.
Задание 1
Вывести идентификаторы и даты рождения всех сотрудников, которые родились до 1965 г.
Вывести идентификаторы и даты рождения сотрудников, родившихся между 1970 и 1973 гг.