5.3.3 Загрузка данных в таблицу
После создания таблицы необходимо заполнить ее. Для этого полезны инструкции LOAD DATA и INSERT.
Предположим, что записи о питомцах можно описать следующим образом. (Обратите внимание, что MySQL ожидает даты в формате '; это может отличаться от того, к чему вы привыкли.)YYYY-MM-DD'
| name | owner | species | sex | birth | death |
|---|---|---|---|---|---|
| Fluffy | Harold | cat | f | 1993-02-04 | |
| Claws | Gwen | cat | m | 1994-03-17 | |
| Buffy | Harold | dog | f | 1989-05-13 | |
| Fang | Benny | dog | m | 1990-08-27 | |
| Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |
| Chirpy | Gwen | bird | f | 1998-09-11 | |
| Whistler | Gwen | bird | 1997-12-09 | ||
| Slim | Benny | snake | m | 1996-04-29 |
Так как таблица пустая, простой способ заполнить ее — создать текстовый файл, содержащий строку для каждого животного, а затем загрузить содержимое файла в таблицу одной инструкцией.
Вы можете создать текстовый файл pet.txt, содержащий по одной записи на строку, со значениями, разделенными табуляцией, и в порядке, в котором столбцы были перечислены в инструкции CREATE TABLE. Для пропущенных значений (например, неизвестного пола или дат смерти для животных, которые все еще живы), можно использовать NULL значения. Чтобы представить их в текстовом файле, используйте \N (обратная косая черта, заглавная буква N). Например, запись для Whistler — птицы — будет выглядеть так (где пробел между значениями — это один символ табуляции):
Whistler Gwen bird \N 1997-12-09 \N
Для загрузки текстового файла pet.txt в таблицу pet используйте следующую инструкцию:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
Если вы создали файл в Windows с помощью редактора, использующего \r\n в качестве разделителя строк, следует использовать следующую инструкцию вместо нее:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
LINES TERMINATED BY '\r\n';
(На устройстве Apple под управлением macOS, скорее всего, вам нужно использовать LINES TERMINATED BY '\r'.)
Вы можете явно указать разделитель значений столбцов и маркер конца строки в инструкции LOAD
DATA, но по умолчанию используются табуляция и символ конца строки. Их достаточно, чтобы инструкция корректно читала файл pet.txt.
Если инструкция завершается ошибкой, возможно, в вашей установке MySQL по умолчанию отключена возможность работы с локальными файлами. См. Раздел 8.1.6, «Учет мер безопасности для LOAD DATA LOCAL» для получения информации о том, как это изменить.
При добавлении новых записей по одной за раз, полезно использовать инструкцию INSERT. В самом простом варианте вы предоставляете значения для каждого столбца в порядке, в котором они перечислены в инструкции CREATE TABLE. Предположим, что у Дианы появился новый хомячок по имени «“Puffball.”». Вы можете добавить новую запись с помощью инструкции INSERT следующим образом:
mysql> INSERT INTO pet
VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Строковые и даты значения здесь указываются как строковые значения в кавычках. Кроме того, с помощью INSERT можно вставить NULL напрямую, чтобы обозначить пропущенное значение. Вы не используете \N, как это делается с LOAD DATA.
Из этого примера видно, что для загрузки записей изначально с помощью нескольких инструкций INSERT потребуется намного больше набора текста, чем с помощью одной инструкции LOAD DATA.
© 2025 Oracle
Licensed under the GPLv2 License.