А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
0-9 A B C D I F G H IJ K L M N O P Q R S TU V WX Y Z #


Чтение книги "MySQL 5.0. Библиотека программиста" (страница 9)

   Другие команды для работы с таблицами

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

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

   или

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

   Эти команды вы можете использовать, чтобы, например, узнать имена и порядок следования столбцов таблицы, проверить правильность изменений, внесенных в структуру таблицы с помощью команды ALTER TABLE и т. п.
   Команда DESCRIBE выводит информацию о столбцах таблицы. Например, чтобы получить информацию о столбцах таблицы Customers (Клиенты), выполним команду

   DESCRIBE Customers;

...
   Примечание
   Во всех клиентских приложениях, подключенных к серверу MySQL, в результате выполнения одной и той же команды отображаются одни и те же данные. Однако окна разных клиентских приложений выглядят по-разному (сравним, например, рис. 2.2 и рис. 2.4). Поэтому здесь и далее мы будем приводить не изображение окна, а только сами данные, выводимые командой.
   Результат выполнения этой команды представлен в табл. 2.1.
Таблица 2.1. Результат выполнения команды DESCRIBE Customers;
   Для каждого столбца таблицы команда DESCRIBE отображает следующие характеристики:
   • Field – имя столбца;
   • Type – тип столбца;
   • Null – указывает, допускает ли столбец неопределенные значения (NULL): YES – допускает, NO – не допускает;
   • Key – показывает вхождение столбца в ключи и индексы:
   – PRI – столбец входит в первичный ключ или, если в таблице нет первичного ключа, в уникальный индекс, не допускающий неопределенных значений;
   – UNI, MUL – столбец является первым столбцом индекса;
   • Default – значение столбца по умолчанию;
   • Extra – дополнительная информация.
   Команда SHOW CREATE TABLE выводит полную информацию о всех параметрах таблицы в виде текста команды CREATE TABLE, позволяющей создать таблицу, идентичную данной. Эта команда может не совпадать с командой, с помощью которой была в действительности создана таблица, если, например, таблица была изменена с помощью команды ALTER TABLE или программа MySQL автоматически внесла корректировки в структуру таблицы (например, добавление значения по умолчанию для столбца или присвоение имени индексу). К примеру, команда

   SHOW CREATE TABLE Customers;

   выводит результат, представленный в табл. 2.2.
Таблица 2.2. Результат выполнения команды SHOW CREATE TABLE Customers;
   Если сравнить данные из табл. 2.2 с «настоящей» командой создания таблицы Customers (см. листинг 2.2), то вы увидите, как изменились определения столбцов.
   Просмотреть список таблиц текущей базы данных вы можете с помощью команды

   SHOW TABLES;

   Если вы выбрали в качестве текущей базу данных 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. Другой пример: если значения в файле разделены запятыми, то экранирующий символ помещается перед запятой, которая должна восприниматься как часть значения, а не как разделитель, то есть последовательность символов «,» интерпретируется как символ запятой в значении.
   Если параметр FIELDS не указан, программа MySQL считает, что значения в файле разделяются табуляцией и не заключаются ни в какие кавычки, а в качестве экранирующего символа используется обратная косая черта.
   • LINES – укажите этот параметр, чтобы сообщить программе MySQL, в каком формате заданы строки в файле:
   – STARTING BY <Префикс строки> – укажем последовательность символов в начале каждой строки, которая должна игнорироваться программой вместе со всеми предшествующими символами. После префикса должны начинаться значения;
   – TERMINATED BY <Разделитель строк> – укажем символ, которым заканчиваются строки. Например, если строки заканчиваются символом перевода строки, укажем параметр TERMINATED BY n', если символом возврата каретки – укажем TERMINATED BY r', если сочетанием этих символов – укажем TERMINATED BY rn', если нулевым байтом – укажем TERMINATED BY .
   Если параметр LINES не указан, программа MySQL считает, что строки в файле не имеют префикса и заканчиваются символом перевода строки «n».
   • IGNORE <Количество строк в начале файла> LINES – укажите этот параметр, если первые несколько строк в файле не содержат значений (иными словами, являются заголовком) и при загрузке их нужно пропустить.
   • (<Список столбцов>) – перечислите столбцы таблицы, в которые будут загружаться данные. Это необходимо, если файл содержит данные не для всех столбцов таблицы или порядок следования значений в файле отличается от порядка столбцов в таблице.
   • SET <Имя столбца> = <Выражение> – вы можете записывать в столбцы не только значения из файла, но и значения, вычисленные с помощью выражений. Для этого создадим одну или несколько переменных, присвоим им считанные из файла значения и запишем в столбец значение выражения, использующего эти переменные. Пусть, например, имеется таблица t1 с числовым столбцом c1 и столбцом с2 с типом TIMESTAMP. В столбец c1 нужно загрузить значение из файла, если это значение не превосходит 1000, либо NULL, если значение в файле больше 1000, а в столбец c2 при этом нужно записать текущую дату и время. Это можно сделать с помощью команды

   LOAD DATA INFILE 'С:/DATA/t1.txt'
   INTO TABLE t1 (@var1)
   SET c1 = IF(@var1< = 1000,@var1,NULL), c2 = CURRENT_TIMESTAMP;

   (о функции IF и о других функциях, используемых в выражениях, рассказывается в главе 3).
   Далее рассмотрим команду INSERT, с помощью которой также можно добавлять строки в таблицу.
Чтение онлайн



1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Навигация по сайту


Читательские рекомендации

Информация