3.3.3 Загрузка данных в таблицу
Создав таблицу, нужно позаботиться об ее заполнении. Для этого
предназначены команды LOAD DATA
и INSERT
.
Предположим, ваши записи соответствуют приведенным в этой таблице
(обратите внимание: MySQL принимает даты в формате ГГГГ-ММ-ДД
; возможно, к
такой записи вы не привыкли).
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 | 1998-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
. Например, запись для птицы
Whistler
должна выглядеть примерно так (между значениями должны
располагаться одиночные символы табуляции):
name | owner | species | sex | birth | death
|
Whistler | Gwen | bird | \N | 1997-12-09 | \N
|
Загрузить файл `pet.txt' в таблицу можно с помощью следующей команды:
mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
Маркер конца строки и символ, разделяющий значения столбцов, можно
специально задать в команде LOAD DATA
, но по умолчанию используются
символы табуляции и перевода строки. Воспринимая их, команда сможет
корректно прочитать файл `pet.txt'.
При добавлении одиночных записей используется команда INSERT
. В самом
простом варианте ее применения необходимо задать значения каждого столбца,
в том порядке, в каком они были перечислены в команде CREATE TABLE
.
Предположим, Диана (Diane) купила хомячка по имени Puffball.
Соответствующую запись в таблицу с можно внести с помощью команды INSERT
примерно так:
mysql> INSERT INTO pet
-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Обратите внимание на то, что здесь строковые выражения и даты представлены
в виде ограниченных кавычками строк. Кроме того, в команде INSERT
отсутствующие данные можно прямо заменять на NULL
. Пользоваться эвфемизмом
\N
, как в команде LOAD DATA
, нужды нет.
Этот пример наглядно показывает, что если бы с самого начала все данные
вносились в базу при помощи нескольких команд INSERT
, а не одной команды
LOAD DATA
, то набирать пришлось бы гораздо больше текста.