KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Виктор Гольцман - MySQL 5.0. Библиотека программиста

Виктор Гольцман - MySQL 5.0. Библиотека программиста

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Виктор Гольцман, "MySQL 5.0. Библиотека программиста" бесплатно, без регистрации.
Перейти на страницу:

ALTER TABLE <Имя таблицы> RENAME <Новое имя таблицы>;

• Упорядочить строки таблицы по значениям одного или нескольких столбцов вы можете с помощью команды

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

ORDER BY <Имя столбца 1> [ASC или DESC],

[<Имя столбца 2> [ASC или DESC],…];

Упорядочение строк позволяет ускорить последующие операции сортировки по значениям указанных столбцов. Однако порядок строк в таблице может нарушиться после операций добавления и удаления строк. По умолчанию строки таблицы упорядочиваются по возрастанию значений. Вы можете выбрать направление сортировки, указав ключевое слово ASC (по возрастанию) или DESC (по убыванию).

Для таблиц с типом InnoDB, в которых есть первичный ключ или уникальный индекс, не допускающий неопределенных значений (NOT NULL UNIQUE), эта команда игнорируется, поскольку строки таких таблиц автоматически упорядочиваются по значениям этого ключа/индекса.

• Задать опциональные свойства таблицы (см. пункт «Опциональные свойства таблицы») вы можете с помощью команды

ALTER TABLE <Имя таблицы> <Опциональное свойство таблицы>;

Например, изменить тип таблицы можно с помощью команды

ALTER TABLE <Имя таблицы> ENGINE <Новый тип таблицы>;

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

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

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

[COLLATE <Имя правила сравнения>];

Например, если для таблицы Products (Товары) требуется установить в качестве кодировки по умолчанию кодировку CP-1251, это можно сделать с помощью команды

ALTER TABLE Products CHARACTER SET cp1251;

После выполнения этой команды существующие столбцы таблицы Products по-прежнему будут иметь кодировку UTF-8. Если же с помощью команды ALTER TABLE будут добавляться новые символьные столбцы, то им будет по умолчанию присваиваться кодировка CP-1251. Если вы хотите не только изменить кодировку, используемую по умолчанию для новых столбцов, но и преобразовать в новую кодировку существующие символьные столбцы таблицы, то нужно использовать команду

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

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

[COLLATE <Имя правила сравнения>];

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

ALTER TABLE Products CONVERT TO CHARACTER SET cp1251;

все наименования и описания товаров (значения столбцов description и details) преобразуются в кодировку CP-1251. Если же данные в столбце фактически закодированы с помощью одной кодировки, а в описании столбца указана другая кодировка, исправить эту ошибку можно, изменив кодировку только в описании столбца, без преобразования данных. Это можно сделать, преобразовав тип столбца из символьного в бинарный (то есть тип CHAR преобразовать в тип BINARY, тип VARCHAR – в тип VARBINARY, тип TEXT – в тип BLOB и т. п.), а затем обратно в символьный, уже в правильной кодировке. Для этого выполним последовательно две команды:

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

CHANGE <Имя столбца> <Имя столбца> <Бинарный тип данных>;

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

CHANGE <Имя столбца> <Имя столбца> <Исходный тип данных>

CHARACTER SET <Фактическая кодировка значений>;

Например, если для столбца details таблицы Products установлен тип TEXT и кодировка UTF-8, а данные в нем фактически находятся в кодировке CP-1251, приведем описание столбца в соответствие с реальной кодировкой с помощью команд

ALTER TABLE Products CHANGE details details BLOB;

ALTER TABLE Products

CHANGE details details TEXT CHARACTER SET cp1251;

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

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

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

Получить детальную информацию о конкретной таблице вы можете с помощью команды

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).

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*