2008-10-31

Экспорт данных из Excel в MySQL

По работе иногда приходится перебрасывать данные из одного формата в другой, из одной кодировки в другую. Если говорить о данных, то экспорт таблиц из MS Excel в базу данных MS SQL Server 2005 производится на раз, причем простым копированием. Здесь товарищам из корпорации не откажешь в сноровке: взаимная интеграция своих продуктов друг в друга на высоте.
Сегодня по дороге на работу вдруг в голову пришла мысль: а что насчет MySQL? Ведь это дитя уже не маленькое, 5 версия уже не новость. Должно же быть и там нечто такое? Чтобы не делать лишнюю ручную работу, и не гонять данные через Китай по этапам? И не писать скрипты, программы для этой операции? И не искать в интернете программы с кряками?
Странно, но в поиске я натыкался именно на это. И только на десятой ссылке наткнулся на грамотное и простое решение, предусмотренное самими разработчиками MySQL.
Это загрузка данных в таблицу из файла, например формата CSV, в который можно экспортировать данные Excel путем "Сохранить как". Не вдаваясь в подробности, будучи уверен, что вы сами разберетесь в деталях, привожу примеры:

ЗАГРУЗКА В ТАБЛИЦУ ИЗ ФАЙЛА

Данные разделены запятыми, данные ячеек заключены в кавычки, новая строка обозначена символом \n:
LOAD DATA INFILE '/home/user/data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';

СОХРАНЕНИЕ ДАННЫХ ИЗ ТАБЛИЦЫ В ФАЙЛ
SELECT a,b,a+b INTO OUTFILE '/home/user/data.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;