Чтение онлайн

ЖАНРЫ

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

Гольцман Виктор

Шрифт:

Если вы выбрали в качестве текущей базу данных SalesDept (Отдел продаж) и создали в ней три таблицы – Customers (Клиенты), Products (Товары) и Orders (Заказы), то команда SHOW TABLES выведет следующий результат (табл. 2.3). Таблица 2.3. Результат выполнения команды SHOW TABLES;

Наконец, чтобы удалить ненужную или ошибочно созданную таблицу, выполните команду

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

...

Внимание!

Удаление таблицы – очень ответственная операция,

поскольку она приводит к удалению всех данных, хранившихся в таблице. Рекомендуется перед удалением таблицы создать резервную копию базы данных.

Итак, вы освоили основные операции, выполняемые с таблицами, а именно: команды CREATE TABLE (создание), ALTER TABLE (изменение), DROP TABLE (удаление), SHOW TABLES (просмотр списка таблиц), DESCRIBE и SHOW CREATE TABLE (просмотр информации о таблице). Теперь мы переходим к работе с отдельными строками.

2.4. Ввод данных в таблицу

После создания таблиц можно приступать к наполнению их данными. В данном разделе вы узнаете о двух операциях, с помощью которых можно добавить строки в таблицу. Вначале мы рассмотрим загрузку данных из текстового файла, затем – вставку отдельных строк.

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

Если требуется добавить в таблицу большой массив данных, удобно использовать для этого команду загрузки данных из файла. Загрузка из файла выполняется программой 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 указывать не нужно.

• \'Путь и имя файла\' – введите полный путь к файлу, например C:/Data/ mytable.txt (необходимо использовать прямую косую черту вместо обратной, принятой в Windows).

• REPLACE или IGNORE – укажите один из этих параметров, чтобы сообщить программе MySQL, как нужно обрабатывать загружаемую строку, если в таблице уже есть строка с таким же значением первичного ключа или уникального индекса. Если указан параметр REPLACE, то существующая в таблице строка заменяется новой. Если указан параметр IGNORE, новая строка в таблицу не загружается.

• CHARACTER SET <Имя кодировки> – укажите кодировку данных в файле. Этот параметр используется для корректного преобразования кодировок. Предполагается, что все данные в файле имеют одну и ту же кодировку.

...

Внимание!

Загрузка данных в кодировке UTF-8 может работать некорректно вследствие переменного количества байтов на символ в этой кодировке. Рекомендуем файл с данными в этой кодировке перед загрузкой преобразовать в какую-либо однобайтовую кодировку. Например, откроем файл с помощью программы Блокнот, в меню Файл выберем команду Сохранить как, а затем в стандартном окне Windows Сохранить как в поле Кодировка выберем из списка значение ANSI и нажмем кнопку Сохранить. После этого загрузим этот файл, указав в команде LOAD DATA параметр CHARACTER SET cp1251.

• FIELDS – укажите этот параметр, чтобы сообщить программе MySQL, в каком формате заданы значения в файле:

– TERMINATED BY <Разделитель значений в строке> – укажем символ, разделяющий значения в строке файла. Например, если значения разделены запятыми, укажем параметр TERMINATED BY, если значения разделены символами табуляции – TERMINATED BY \t\', если значения разделены косой чертой – TERMINATED BY /;

– ENCLOSED BY <Символ, в который заключены значения> – укажем символ, которым обрамляются значения. Например, если все значения заключены в одинарные кавычки, укажем ENCLOSED BY \, если в одинарные кавычки заключены только символьные значения, укажем OPTIONALLY ENCLOSED BY \, а если никакие значения не обрамляются никакими символами, укажем ENCLOSED BY или вообще опустим этот параметр;

– ESCAPED BY <Экранирующий символ> – укажем экранирующий символ (его также называют escape-символом). Этот символ сообщает программе MySQL, что следующий за ним символ нужно интерпретировать особым образом. А именно, обычный символ, следующий после экранирующего, будет рассматриваться как специальный символ, а специальный символ, наоборот, – как обычный символ.

Чаще всего экранирующим символом служит обратная косая черта, и в этом случае зададим значение ESCAPED BY \\. Тогда, например, записанное в файле значение «\N» будет прочитано и загружено в базу данных как NULL. Другой пример: если значения в файле разделены запятыми, то экранирующий символ помещается перед запятой, которая должна восприниматься как часть значения, а не как разделитель, то есть последовательность символов «\,» интерпретируется как символ запятой в значении.

Поделиться с друзьями: