Создание структуры БД и манипулирование данными в СУБД MySQL. Пономарев А.А. - 71 стр.

UptoLike

Составители: 

столбцы удаляются из таблицы, то эти столбцы удаляются также и из любого индекса, в ко-
торый они входят как часть. Если все столбцы, составляющие индекс, удаляются, то данный
индекс также удаляется.
Если таблица содержит только один столбец, то этот столбец не может быть удален.
Вместо этого можно удалить данную таблицу, используя команду DROP TABLE.
Опция DROP PRIMARY KEY удаляет первичный индекс. Если такого индекса в
данной таблице не существует, то удаляется первый индекс UNIQUE в этой таблице.
(MySQL отмечает первый уникальный ключ UNIQUE как первичный ключ PRIMARY
KEY, если никакой другой первичный ключ PRIMARY KEY не был явно указан). При до-
бавлении UNIQUE INDEX или PRIMARY KEY в таблицу они хранятся перед осталь-
ными неуникальными ключами, чтобы можно было определить дублирующиеся ключи как
можно раньше.
Опция ORDER BY позволяет создавать новую таблицу со строками, размещенными
в заданном порядке. Следует учитывать, что созданная таблица не будет сохранять этот по-
рядок строк после операций вставки и удаления. В некоторых случаях такая возможность
может облегчить операцию сортировки в MySQL, если таблица имеет такое расположение
столбцов, которое Вы хотели бы иметь в дальнейшем. Эта опция в основном полезна, если
заранее известен определенный порядок, в котором преимущественно будут запрашиваться
строки. Использование данной опции после значительных преобразований таблицы дает
возможность получить более высокую производительность.
При использовании команды ALTER TABLE для таблиц MyISAM все неуникаль-
ные индексы создаются в отдельном пакете (подобно REPAIR). Благодаря этому команда
ALTER TABLE при наличии нескольких индексов будет работать быстрее.
Начиная с MySQL 4.0, вышеуказанная возможность может быть активизирована яв-
ным образом. Команда ALTER TABLE ... DISABLE KEYS блокирует в MySQL
обновление неуникальных индексов для таблиц MyISAM. После этого можно применить
команду ALTER TABLE ... ENABLE KEYS для воссоздания недостающих индек-
сов. Так как MySQL делает это с помощью специального алгоритма, который намного бы-
стрее в сравнении со вставкой ключей один за другим, блокировка ключей может дать су-
щественное ускорение на больших массивах вставок.
Применяя функцию C API mysql_info(), можно определить, сколько записей
было скопировано, а также (при использовании IGNORE) - сколько записей было удалено
из-за дублирования значений уникальных ключей.
Выражения FOREIGN KEY, CHECK и REFERENCES фактически ничего не де-
лают. Они введены только из соображений совместимости, чтобы облегчить перенос кода с
других серверов SQL и запуск приложений, создающих таблицы со ссылками.
Ниже приводятся примеры, показывающие некоторые случаи употребления команды
ALTER TABLE. Пример начинается с таблицы t1, которая создается следующим об-
разом:
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));
Для того чтобы переименовать таблицу из t1 в t2:
mysql> ALTER TABLE t1 RENAME t2;
Для того чтобы изменить тип столбца с INTEGER на TINYINT NOT NULL
(оставляя имя прежним) и изменить тип столбца b с CHAR(10) на CHAR(20) с пере-
именованием его с b на c:
mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c
CHAR(20);
Для того чтобы добавить новый столбец TIMESTAMP с именем d:
mysql> ALTER TABLE t2 ADD d TIMESTAMP;
71