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

на главную - закладки

Жанры

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

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

Шрифт:

ALTER TABLE Orders DROP FOREIGN KEY orders_ibfk_1;

(здесь orders_ibfk_1 – имя внешнего ключа, автоматически присвоенное ему при создании). • Удалить индекс (обычный, уникальный или полнотекстовый) вы можете с помощью команды

ALTER TABLE <Имя таблицы> DROP INDEX <Имя индекса>;

В этой команде необходимо указать имя индекса. Если вы не задали имя индекса при его создании, то имя было присвоено автоматически и узнать его можно с помощью команды SHOW CREATE TABLE (см. подраздел «Другие команды для работы с таблицами»). Например, удалить индекс, созданный

для поля name (имя) таблицы Customers (Клиенты), можно с помощью команды

ALTER TABLE Customers DROP INDEX name;

(здесь name – имя индекса: по умолчанию индексу присваивается имя первого индексируемого столбца). • Включить и отключить обновление неуникальных индексов в таблице с типом MyISAM вы можете с помощью следующих команд:

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

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

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

Эта команда позволяет восстановить индексы после добавления строк. • Переименовать таблицу вы можете с помощью команды

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;

Поделиться:
Популярные книги

Эпоха Опустошителя. Том I

Павлов Вел
1. Вечное Ристалище
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эпоха Опустошителя. Том I

Проблема майора Багирова

Майер Кристина
1. Спецназ
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Проблема майора Багирова

Законы Рода. Том 13

Андрей Мельник
13. Граф Берестьев
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 13

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Прометей: каменный век

Рави Ивар
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Прометей: каменный век

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Цвет сверхдержавы - красный. Трилогия

Симонов Сергей
Цвет сверхдержавы - красный
Фантастика:
попаданцы
альтернативная история
8.06
рейтинг книги
Цвет сверхдержавы - красный. Трилогия

Болтливый мертвец

Фрай Макс
7. Лабиринты Ехо
Фантастика:
фэнтези
9.41
рейтинг книги
Болтливый мертвец

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Лишняя дочь

Nata Zzika
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Лишняя дочь