В MySQL есть два простых способа загрузки данных в базу данных MySQL из ранее сохраненного файла.
Импорт данных с помощью LOAD DATA
MySQL предоставляет оператор LOAD DATA, который действует как загрузчик больших объемов данных. Вот пример оператора, который читает файл dump.txt из вашего текущего каталога и загружает его в таблицу mytbl в текущей базе данных.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
- Если ключевое слово LOCAL отсутствует, MySQL ищет файл данных на хосте сервера, который полностью указывает местоположение файла, начиная с корня файловой системы. MySQL читает файл из указанного местоположения.
- По умолчанию LOAD DATA предполагает, что файлы данных содержат строки, которые заканчиваются переводами строк (новыми строками), а значения данных в строке разделяются вкладками.
- Чтобы явно указать формат файла, используйте предложение FIELDS для описания характеристик полей в строке и предложение LINES для указания конца строки. Следующая инструкция LOAD DATA указывает, что файл данных содержит значения, разделенные двоеточиями и строками, оканчивающимися возвратом каретки и символом новой строки.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
-> FIELDS TERMINATED BY ':'
-> LINES TERMINATED BY '\r\n';
- Команда LOAD DATA предполагает, что столбцы в файле данных имеют тот же порядок, что и столбцы в таблице. Если это не так, вы можете указать список, чтобы указать, в какие столбцы таблицы должны быть загружены столбцы файла данных. Предположим, что в вашей таблице есть столбцы a, b и c, но последовательные столбцы в файле данных соответствуют столбцам b, c и a.
Вы можете загрузить файл, как показано в следующем блоке кода.
mysql> LOAD DATA LOCAL INFILE 'dump.txt'
-> INTO TABLE mytbl (b, c, a);
Импортирование данных с помощью mysqlimport
MySQL также включает в себя служебную программу mysqlimport,которая действует как обертка вокруг LOAD DATA, так что вы можете загружать входные файлы непосредственно из командной строки.
Чтобы загрузить данные из файла dump.txt в mytbl , используйте следующую команду в командной строке UNIX.
$ mysqlimport -u root -p --local database_name dump.txt
password *****
Если вы используете mysqlimport , параметры командной строки предоставляют спецификаторы формата. В mysqlimport команды , которые соответствуют предыдущих двух LOAD DATA заявлений выглядит , как показано в следующем примере
$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
--lines-terminated-by = "\r\n" database_name dump.txt
password *****
Порядок, в котором вы указываете параметры, не имеет значения для mysqlimport, за исключением того, что все они должны предшествовать имени базы данных.
Mysqlimport оператор использует —columns параметр , чтобы указать порядок столбцов —
$ mysqlimport -u root -p --local --columns=b,c,a \
database_name dump.txt
password *****