ЭКСПОРТ/ИМПОРТ. Миграция базы данных и рост профессионализма 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

ЭКСПОРТ/ИМПОРТ. Миграция базы данных и рост профессионализма

ЭКСПОРТ/ИМПОРТ. Миграция базы данных и рост профессионализма

Задача 1. Перенес данных из Access в MySQL

       Существует много способов импорта данных из Access в MySQL. Остановлюсь на самом оптимальном и легком.

       Имеем четыре таблицы базы данных:

Целью работы является продажа товара определенной фирмы и определенной категории. Ниже следует примерный перечень данных, находящихся в таблице

Category

ID_Category

NameCategory

Молочная продукция

Заморозка

 

Firm

ID_Firm

NameFirm

Adress

Простоквашино

г.Калуга. Ул.Калужская д.1 к.1

ТЧН

г.Москва ул. Московская д.1 к.1

Красная цена

г.Воркута Ул.Уличная д.2

Буренка

г.Краснодар Ул.Генералов д.15

 

Tovar

ID_Tovar

NameTovar

Сырок глазированый

Молоко 1л

Фасоль

Брокколи

 

Таблица Продажи нас пока не интересует, т.к. оформлением продаж мы будем заниматься уже в My SQL


 

Так выглядит схема данных в MS Access

Далее все еще проще. Открываем таблицу и нажимаем на пиктограмму «Экспорт в таблицу Excel» закладки «Внешние данные». Указываем путь и нажимаем «ОК»

 

Открываем файл Excel, сохраняем как *.ods

Далее переходим в PhpMyAdmin и в выбранной базе данных переходим в раздел ИМПОРТ. Выбираем файл, Кодировку и ФОРМАТ(Open Document SpreadSheet).

 

В разделе Параметры формата ставим галочку на пункт «Первая строка файла содержит имена полей таблицы (если данный параметр не выбран, то первая строка будет частью данных)» и нажимаем кнопку «Вперед»

ВСЕ ГОТОВО!

Теперь перейдем к таблице Sale. Она имеет строгие форматы Дата и Время. Для этого в таблице Excel необходимо выставить соответствующие форматы ячеек. Для даты – дату. Для времени – время.


 

А теперь о ТРИГГЕРАХ

Триггер нам пригодится для автоматического заполнения таблиц. Например по нашей теме – формирование ЧЕКА.

Создадим таблицу ЧЕК(ChekMagazin)

CREATE TABLE ChekMagazin(

ID_CheckMagazin int not null AUTO_INCREMENT PRIMARY KEY,

DateSale DATE,

TimeSale TIME,

DateChek DATE,

Summa FLOAT,

ID_Sale int )

   

Атрибут

Тип Данных

Описание

ID_CheckMagazin

Числовой

Первичный ключ

DateSale

Дата

Дата продажи

TimeSale

Время

Время продажи

DateChek

Дата

Дата формирования чека

Summa

Числовой

Сумма покупки(вычисляемое)

ID_Sale

Числовой

Внешний ключ.

 


 

Теперь пишем ТРИГГЕР на таблицу продаж

DELIMITER |

CREATE TRIGGER `CREATE_CHECK` after insert ON `sale`

FOR EACH ROW

BEGIN

INSERT INTO

ChekMagazin

Set

DateSale=CURRENT_DATE,

TimeSale=CURRENT_TIME,

DateChek = CURRENT_DATE,

Summa=new.Kolichestvo*(SELECT tovar.Cena FROM sale, tovar

WHERE tovar.ID_Tovar=new.ID_Tovar

HAVING new.ID_Sale=MAX(new.ID_Sale)),

ID_Sale=new.ID_Sale;

ENDПосле ЗАПОЛНЕНИЯ ТАБЛИЦЫ SALE(after insert ON `sale`), ВСТАВЛЯЕМ В ТАБЛИЦУ ChekMagazin (INSERT INTO ChekMagazin) значения полей.

NEW – значит новое значение. Принимает от введенного в SALE

CURRENT_DATE – ТЕКУЩАЯ ДАТА. Так же есть и CURRENT_TIME

Теперь мы больше можем не волноваться о заполнении Полей с СУММОЙ. А только выводить результат на экран

ПРОВЕРИМ:

SELECT category.NameCategory,firm.NameFirm,tovar.NameTovar,chekmagazin.Summa,chekmagazin.DateChek,sale.Kolichestvo,tovar.Cena

FROM tovar,category,chekmagazin,sale,firm

WHERE

firm.ID_Firm=tovar.ID_Firm

AND

category.ID_Category=tovar.ID_Category

AND

sale.ID_Tovar=tovar.ID_Tovar

AND

chekmagazin.ID_Sale=sale.ID_Sale

NameCategory

NameFirm

NameTovar

Summa

DateChek

Kolichestvo

Cena

Молочная продукция

Простоквашино

Молоко 1л

2017-10-27

Соответсвенно в таблице SALE поля DateSale и TimeSale более не нужны



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 49; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.005 с.)