English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой главе мы расскажем о нескольких простых командах импорта данных MySQL.
Формат синтаксиса команды mysql для импорта данных выглядит следующим образом:
mysql -uимя_пользователя -pпароль < данные_базы_данных_для_импорта(w3codebox.sql)
Пример:
# mysql -uroot -p123456 < w3codebox.sql
Эти команды импортируют всю резервную базу данных w3codebox.sql.
Для импорта базы данных с помощью команды source необходимо сначала войти в терминал базы данных:
mysql> create database abc; # создание базы данных mysql> use abc; # использование созданной базы данных mysql> set names utf8; # настройка кодировки mysql> source /home/abc/abc.sql # импорт резервной базы данных
MySQL предоставляет предложение LOAD DATA INFILE для вставки данных. В следующем примере файл dump.txt будет считан из текущей директории и данные из этого файла будут вставлены в таблицу mytbl текущей базы данных.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
Если указан ключевой слово LOCAL, это означает чтение файла по пути с клиента. Если его не указано, файл читается по пути на сервере.
Вы можете явно указать разделитель значений столбца и маркер конца строки в предложении LOAD DATA, но по умолчанию маркером является позиционный символ и символ перевода строки.
Грамматика подзапросов FIELDS и LINES для двух команд одинакова. Оба подзапроса являются необязательными, но если они оба указаны, подзапрос FIELDS должен出现在 подзапросом LINES до него.
Если пользователь указывает подзапрос FIELDS, его подзапросы (TERMINATED BY, [OPTIONALLY] ENCLOSED BY и ESCAPED BY) также являются необязательными, но пользователь должен указать по крайней мере один из них.
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl -> FIELDS TERMINATED BY ':' -> LINES TERMINATED BY '\r\n';
По умолчанию LOAD DATA вставляет данные в порядке столбцов файла данных, если порядок столбцов файла данных не совпадает с порядком столбцов таблицы,则需要 specify порядок столбцов.
Например, если порядок столбцов в файле данных a,b,c, а порядок столбцов в таблице вставки b,c,a, то синтаксис импорта данных будет следующим:
mysql> LOAD DATA LOCAL INFILE 'dump.txt' -> INTO TABLE mytbl (b, c, a);
Клиент mysqlimport предоставляет командную строковую интерфейс для LOAD DATA INFILEQL.
Чтобы импортировать данные из файла dump.txt в таблицу mytbl, можно использовать следующую команду:
$ mysqlimport -u root -p --local mytbl dump.txt пароль *****
Команда mysqlimport может specify опции для установки формата, формат команды такой:
$ mysqlimport -u root -p --local --fields-terminated-by=":" \ --lines-terminated-by="\r\n" mytbl dump.txt пароль *****
использование опции --columns в mysqlimport для установки порядка столбцов:
$ mysqlimport -u root -p --local --columns=b,c,a \ mytbl dump.txt пароль *****
опция | функция |
---|---|
-d или --delete | все данные перед导入新数据 в таблицу удаляются из таблицы. |
-f или --force | mysqlimport продолжит вставку данных принудительно, независимо от того, встречаются ли ошибки. |
-i или --ignore | mysqlimport пропускает или игнорирует те, у которых есть идентичные уникальные строки с ключевыми словами, данные из импортируемого файла будут пропущены. |
-l или -lock-tables | Таблица блокируется перед вставкой данных, что предотвращает Когда вы обновляете базу данных, запросы и обновления пользователей受到影响. |
-r или -replace | Этот параметр действует oppositely к параметру -i; этот параметр будет заменять В таблице есть записи с одинаковыми уникальными ключами. |
--fields-enclosed-by= char | Specify, как данные в текстовом файле записываются в записи, часто Данные заключены в двойные кавычки. По умолчанию данные не заключены в кавычки. |
--fields-terminated-by=char | Specify delimiter between the values of different data, in dot-separated files, Delimitor is dot. Вы можете использовать этот параметр для specification of delimiter between data. Default delimiter is tab. |
--lines-terminated-by=str | Этот параметр specifies строку, которая используется для разделения данных в строках текстового файла. или символа. По умолчанию mysqlimport использует newline в качестве разделителя строк. Вы можете использовать строку для замены одного символа: Одна новая строка или один отступ. |
Часто используемые параметры команды mysqlimport включают -v для отображения версии (version), -p для запроса пароля (password) и т.д.