ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

9 минут чтени€

‘айл CSV (Comma Separated Values - значени€, разделенные зап€тыми) использует зап€тые дл€ разделени€ различных значений в файле. ‘айл CSV €вл€етс€ стандартным форматом при переносе таблицы в другую систему или ее импорте в другое приложение базы данных.

Ёкспорт и импорт CSV в MySQL

Ёто подробное руководство покажет вам, как экспортировать базу данных MySQL в файл CSV и импортировать файл CSV обратно в базу данных MySQL.


Ёкспорт MySQL в CSV

Ќам понадобитс€:

  1. ƒоступ к командной строке или окну терминала
  2. ”четна€ запись пользовател€ с привилеги€ми root или sudo
  3. ”четна€ запись пользовател€ MySQL с правами root
  4. ѕредварительно настроенна€ учетна€ запись phpMyAdmin (необ€зательно)

Ёкспорт MySQL в CSV с phpMyAdmin

»нструмент phpMyAdmin предоставл€ет бесплатный графический интерфейс дл€ управлени€ базами данных MySQL. ¬ы можете использовать его дл€ экспорта любой из отслеживаемых баз данных в файл CSV.

  1. ¬ойдите в phpMyAdmin.
  2. «атем нажмите кнопку Databases (Ѕазы данных) в верхней части баннера. Databases
  3. ¬ списке баз данных щелкните ссылку на базу данных, которую вы хотите экспортировать. ¬ этом примере мы выбрали базу данных user. user
  4. Ќа следующем экране отображаетс€ список таблиц в этой базе данных. ”становите флажки дл€ таблиц, которые вы хотите экспортировать.
  5. Ќажмите кнопку Export на баннере внизу.
  6. ќставьте метод экспорта установленным как есть. »спользуйте раскрывающеес€ меню Format, чтобы выбрать CSV, затем нажмите Go. Export
  7. ƒиалоговое окно предлагает указать место, где вы хотите сохранить файл CSV. —охранение CSV

Ёкспорт из MySQL в CSV с помощью командной строки

¬ы можете выполнить экспорт без излишеств через CLI, выбрав все данные в таблице и указав место, куда их нужно сохранить.

Ќачните с открыти€ оболочки MySQL, затем переключитесь на базу данных, которую вы хотите экспортировать.

¬ведите следующую команду:

SELECT * FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';	

«амените myTable реальным именем таблицы из вашей базы данных. ¬ы можете заменить \tmp\myExportFile.csv любым другим именем файла или местоположением. Ќе забудьте сохранить им€ файла .csv в конце.

ѕримечание. ¬ этом примере используетс€ местоположение файла Linux. ≈сли вы работаете в Windows, вы можете использовать c:/folder/file.csv дл€ вашего местоположени€ файла.
ƒополнительные параметры дл€ экспорта из MySQL

„тобы указать отдельные наборы данных дл€ экспорта из таблицы:

SELECT column1, column2, column3, column4
FROM myTable
WHERE column2 = 'value';

«амените column1 (и остальные) фактическими именами столбцов, которые вы хотите экспортировать. ќб€зательно используйте команду FROM, чтобы указать таблицу, из которой вы экспортируете. ќператор WHERE €вл€етс€ необ€зательным и позвол€ет экспортировать только те строки, которые содержат определенное значение. «амените значение фактическим значением, которое вы хотите экспортировать. Ќапример:

SELECT order_date, order_number, order_status
FROM current_orders
WHERE order_status='pending';
<Ёкспорт и временна€ метка (timestamp) CSV-файла

»спользуйте следующую команду дл€ экспорта в файл CSV и добавьте метку времени дл€ времени создани€ файла:

SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');
SET @FOLDER = '\tmp';
SET @PREFIX = 'myTable';
SET @EXT    = '.csv';
SET @CMD = CONCAT("SELECT * FROM myTable INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,
"' FIELDS ENCLOSED BY '\"'
 TERMINATED BY ';'
ESCAPED BY '\"'"," 
LINES TERMINATED BY '\r\n';");
PREPARE statement FROM @CMD;
EXECUTE statement;	

 ак обычно, замените myTable реальным именем экспортируемой таблицы.

ѕримечание: вы можете заметить команду SELECT * FROM в скобках. ћы обернули команду в функцию, котора€ добавл€ет метку времени.
Ёкспорт с заголовками столбцов

»спользуйте оператор UNION дл€ добавлени€ заголовков столбцов в экспортируемый файл:

(SELECT 'column1','column2','column3','column4')
UNION
(SELECT column1, column2, column3, column4
FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n')	
–абота с пустыми значени€ми

≈сли в базе данных есть нулевые (пустые) значени€, этот процесс экспортирует их как букву N. ¬ы можете заменить значени€ NULL другой строкой текста, котора€ имеет больше смысла:

SELECT column1, column2, IFNULL(column3, 'N/A')
FROM myTable INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"' LINES
TERMINATED BY '\r\n');	

¬ этом случае команда IFNULL ищет пустые значени€ в column3.  огда он находит их, он замен€ет их текстовой строкой N/A.


Ёкспорт MySQL в CSV с помощью mysqldump

¬ы можете использовать приложение mysqldump дл€ экспорта базы данных MySQL в файл CSV. ¬ведите в командной строке следующее:

mysqldump ЦЦtab=/var/lib/mysqlЦfiles/ ЦЦfieldsЦenclosedЦby='"' ЦЦfieldsЦterminatedЦby=',' ЦЦlinesЦterminatedЦby='\n' myTable

Ёта команда создает копию базы данных myTable в /var/lib/mysql-files.

ѕримечание. ¬аша учетна€ запись должна иметь права доступа к каталогу, в котором сохранен файл CSV. ¬ы можете сохранить его по другому пути, но это должен быть путь, к которому у MySQL есть полный доступ.

Ёкспорт MySQL в CSV с использованием CSV Engine

¬ некоторых случа€х вы можете использовать CSV Engine в MySQL дл€ изменени€ таблицы. Ётот метод не будет работать, если ваша таблица имеет индекс или если ваша таблица использует auto_increment. »спользуйте следующую команду:

ALTER TABLE myTable ENGINE=CSV;	

Ётот оператор измен€ет формат базы данных на CSV. «атем вы можете скопировать файл CSV в другую систему.

¬ определенных конфигураци€х, CSV Engine или метод mysqldump также могут сэкономить много времени.

»мпорт CSV в MySQL

Ќам понадобитс€:

  1. ƒоступ к командной строке или окну терминала
  2. CSV-файл, содержащий данные, которые вы хотите импортировать
  3. ”четна€ запись пользовател€ MySQL с привилеги€ми FILE и INSERT
  4. ѕредварительно настроенна€ учетна€ запись phpMyAdmin (необ€зательно)

»мпорт файла CSV с помощью командной строки

Ўаг 1: ƒоступ к оболочке MySQL

ќткройте окно терминала и войдите в MySQL, использу€ следующую команду:

mysql Цu username Цp	

«амените username вашим реальным именем пользовател€. —истема предложит вам ввести пароль дл€ вашего пользовател€ MySQL. ¬вод правильного парол€ дает вам доступ к клиенту MySQL.

mysql Цu username Цp

Ўаг 2. —оздание таблицы MySQL дл€ импорта в CSV

—толбцы в вашей таблице MySQL должны соответствовать данным из файла CSV, который вы планируете импортировать. ≈сли у вас уже есть таблица, готова€ дл€ импорта в CSV, вы можете перейти к шагу 3 руководства.

¬ыберите базу данных, введ€ следующую команду:

USE database_name;	

«амените database_name именем базы данных, в которую вы импортируете данные. »спользуйте следующую команду дл€ создани€ новой таблицы:

CREATE TABLE table_name (
            id INT NOT NULL AUTO_INCREMENT,
            column_1 VARCHAR(255) NOT NULL,
            column_2 DATE NOT NULL,
            column_3 DECIMAL(10 , 2 ) NULL,
            column_4 INTEGER,
            PRIMARY KEY (id)
);	

«амените значение table_name на им€, которое вы хотите использовать дл€ своей таблицы. ѕеременна€ column_n представл€ет имена дл€ каждого столбца в вашем CSV-файле, и вы должны отредактировать их соответствующим образом.

  • ¬ этом примере column_1 отформатирован дл€ текста.
  • column_2 отформатирован дл€ дат.
  • column_3 отформатирован дл€ валют. „исла в скобках указывают максимальный размер значени€ и дес€тичные разр€ды.
  • column_4 отформатирован дл€ целых чисел.

¬ы можете добавл€ть, удал€ть или измен€ть типы данных, используемые в этом примере, в соответствии с вашими потребност€ми. ѕосетите официальную документацию MySQL по типам данных, чтобы узнать больше.

Ўаг 3: »мпорт CSV в MySQL Table

»мпортируйте данные из файла CSV в базу данных MySQL, использу€ следующие строки:

LOAD DATA INFILE '/home/export_file.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '/n'
IGNORE 1 ROWS;

ƒавайте, в свою очередь, рассмотрим действи€, сто€щие за каждой из этих строк:

  • LOAD DATA INFILE - ќпредел€ет расположение файла CSV дл€ импорта. »змените путь (между кавычками), чтобы он соответствовал пути и имени файла вашего CSV-файла. ≈сли файл CSV находитс€ на локальном компьютере, вместо него можно использовать оператор LOAD DATA LOCAL INFILE.
  • INTO TABLE - указывает таблицу назначени€, в которую вы импортируете файл CSV. »змените table_name на им€ вашей таблицы.
  • FIELDS TERMINATED BY Ц ѕо умолчанию файлы значений, разделенные зап€тыми, используют зап€тую дл€ идентификации отдельных значений данных. ≈сли в вашем файле экспорта используетс€ другой разделитель, вы можете изменить это значение.
  • ENCLOSED BY - указывает, что двойна€ кавычка " окружает значени€.
  • LINES TERMINATED BY - »спользуйте эту строку, чтобы указать код дл€ разрыва строки.
  • IGNORE 1 ROWS; - ћногие CSV-файлы экспортируютс€ с метками столбцов в первой строке. Ёта команда говорит MySQL игнорировать первую строку, так как вы уже создали свою таблицу с соответствующими заголовками столбцов. “очка с зап€той в конце указывает конец команды дл€ выполнени€ MySQL.

»мпорт CSV с помощью phpMyAdmin

≈сли ваш сервер или база данных использует phpMyAdmin, вы можете использовать графический интерфейс дл€ импорта файла CSV.

  1. ¬ойдите в cPanel и запустите phpMyAdmin. phpMyAdmin
  2. »спользуйте левую панель, чтобы выбрать базу данных и таблицу, в которую вы импортируете CSV-файл.
  3. »спользуйте верхнее меню, чтобы выбрать Import. Import
  4. Ќажмите Choose File (¬ыбрать файл) и перейдите к местоположению файла CSV.
  5. »спользуйте раскрывающеес€ меню Format, чтобы выбрать CSV, и параметры, относ€щиес€ к формату, чтобы определить параметры дл€ отдельных столбцов. Go
  6. Ќажмите Goчтобы начать импорт CSV.

«аключение

“еперь вы знаете, как экспортировать CSV-файлы из MySQL и импортировать CSV-файлы в MySQL из командной строки и с помощью phpMyAdmin.