- •Разработка баз данных средствами 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
14. Создание приложения к бд в среде delphi 7, с использованием AnyDac framework 1.7.0
1. Начало работы
При рассмотрении вопроса о создании приложения к базе данных в среде DELPHI 7 воспользуемся примером учебной БД «Школа», структура которой отражена в следующей диаграмме (рис. 7), а основные характеристики описаны в таблице 3 (SQL-скрипт school25_db.sql).
Рис. 7. Диаграмма БД «Школа»
Таблица 11. Структура БД «Школа»
сущность |
атрибут |
тип |
Описание |
classes |
class_ID |
int(11) |
уникальный ID класса |
class_num |
int(11) |
параллель класса |
|
class_char |
char(1) |
литер класс |
|
class_profile_ID |
int(11) |
внешний ID профиля |
|
profiles |
profile_ID |
int(11) |
уникальный ID профиля |
profile_name |
char(255) |
Название профиля |
|
pupils |
pupil_ID |
int(11) |
уникальный ID ученика |
fullname |
char(255) |
ФИО ученика |
|
birthday |
date |
Дата рождения |
|
adress |
char(255) |
Адрес |
|
phone |
char(255) |
Телефон |
|
pupil_class_ID |
int(11) |
внешний ID класса |
|
schedule |
schedule_ID |
int(11) |
уникальный ID расписания |
subject_num |
int(11) |
номер урока |
|
schedule_class_ID |
int(11) |
внешний ID класса |
|
schedule_teacher_ID |
int(11) |
внешний ID учителя |
|
schedule_subject_ID |
int(11) |
внешний ID предмета |
|
schedule_day_ID |
int(11) |
внешний ID дня |
|
subjects |
subject_ID |
int(11) |
уникальный ID предмета |
subject_name |
char(255) |
Название предмета |
|
teacher_to_subject |
tts_teacher_id |
int(11) |
ID учителя |
tts_subject_id |
int(11) |
ID предмета |
|
teachers |
teacher_ID |
int(11) |
уникальный ID учителя |
teacher_name |
char(255) |
ФИО учителя |
|
workdays |
day_ID |
int(11) |
уникальный ID дня недели |
day_name |
char(255) |
Название дня недели |
Для соединения вашего приложения с базой данных на форму надо добавить три обязательных компонента из вкладок:
AnyDAC - ADConnection - компонент для соединение с БД;
AnyDAC UI - ADGUIxWaitCursor - курсор, который отображается при выполнении запросов;
AnyDAC Links - ADPhysMySQLDriverLink - ссылка на драйвер.
Без этих компонентов ваше приложение просто не запустится!
Для настройки подключения к вашей БД дважды щелкните по компоненту ADConnection на форме, появится окно настроек, в котором необходимо заполнить нужные данные:
Driver ID - надо выбрать пункт MySQL
Если после выбора появится ошибка, то скорее всего не найдена библиотека libMySQL.dll, тогда необходимо скопировать ее из \Program Files\MySQL\MySQL Server 5.0\bin либо в папку с вашим проектом, либо в \System32, либо в \Program Files\Borland\Delphi7\Bin.
Database – название подключаемой базы данных;
User_name - имя пользователя, обычно используется root;
Password - пароль для выбранного пользователя;
Host - IP адрес сервера MySQL, например 192.168.35.53, если MySQL Server установлен на локальном компьютере, то необходимо выбрать <LOCALHOST>;
Port - порт, выбранный при конфигурировании MySQL Server, обычно используется порт 3306
CharacterSet - кодировка используемая для работы с данными, русская кодировка - cp1251.
После заполнения этих настроек можно протестировать соединение, нажав кнопку Test: появится диалог подключения, нажмите OK и, если все пройдет успешно будет выдано сообщение: «Connection established successfully», если же произойдет ошибка, то будет выдано сообщение с описанием ошибки.