MySQL 5.0. Библиотека программиста | страница 48



Загрузка данных из файла

Если требуется добавить в таблицу большой массив данных, удобно использовать для этого команду загрузки данных из файла. Загрузка из файла выполняется программой MySQL значительно быстрее, чем вставка строк с помощью команды INSERT.

Например, чтобы загрузить данные в таблицу Customers (Клиенты), команда создания которой показана в листинге 2.2, выполните следующие действия.

1. Запустите стандартную программу Windows Блокнот (Пуск → Все программы → Стандартные → Блокнот).

2. В окне программы Блокнот введите данные, используя для отделения значений друг от друга клавишу Tab, а для перехода на следующую строку – клавишу Enter (рис. 2.5).

Рис. 2.5. Ввод данных в текстовый файл

...

Примечание

Вместо отсутствующего значения необходимо при заполнении файла ввести символы «\N». Тогда в базу данных будет загружено неопределенное значение (NULL).

3. Для сохранения файла с данными нажмите комбинацию клавиш Ctrl+S. В стандартном окне Windows Сохранить как выберите папку, в которую нужно поместить файл (например, C: \data). Введите имя файла (например, Customers. txt) и нажмите кнопку Сохранить.

4. Для загрузки данных из созданного файла выполните команду

LOAD DATA LOCAL INFILE \'C:/data/Customers.txt\'

INTO TABLE Customers

CHARACTER SET cp1251;

Обратите внимание, что в пути к файлу необходимо использовать прямую косую черту, а не обратную.

Файл Customers.txt мы создали в формате, принятом по умолчанию в MySQL, поэтому при загрузке потребовалось указать только один дополнительный параметр – кодировку Windows.

Однако если вам нужно загрузить в таблицу данные из текстового файла, который был создан в другом формате (например, выгружен из другой базы данных), могут потребоваться и другие параметры. Полностью команда LOAD DATA имеет следующий вид:

LOAD DATA [LOCAL] INFILE \'Путь и имя файла\'

[REPLACE или IGNORE]

INTO TABLE <Имя таблицы>

CHARACTER SET <Имя кодировки>

[

FIELDS

[TERMINATED BY <Разделитель значений в строке>]

[[OPTIONALLY]

ENCLOSED BY <Символ, в который заключены значения>]

[ESCAPED BY <Экранирующий символ>]

]

[

LINES

[STARTING BY <Префикс строки>]

[TERMINATED BY <Разделитель строк>]

]

[IGNORE <Количество строк в начале файла> LINES]

[(<Список столбцов>)]

[SET <Имя столбца> = <Выражение>,…];

В этой команде вы можете использовать следующие параметры.

• LOCAL – укажите этот параметр, если файл с данными находится на клиентском компьютере (то есть на том компьютере, где работает клиентское приложение, в котором вы и вводите эту команду). Если файл расположен на компьютере, где работает сервер MySQL, параметр LOCAL указывать не нужно.