Оператор alter table, помимо добавления новых столбцов, позволяет создавать в таблице индексы. Для добавления индексов предназначены четыре ключевых слова:
Все индексы за исключением primary kry могут быть снабжены необязательные именем index_name, в скобках указывается столбец (или столбцы, если индекс многостолбцовый) index_columns.
В листинге 10.8 создается первичный ключ для таблицы products (см. листинг 4.25) и индексируется столбец id_catalog с созданием индекса id_catalog_index.
В листинге 10.9 происходит удаление индексов, созданных SQL-запросом из листинга 10.8
Помимо изменения структуры таблицы, оператор alter table позволяет изменять параметры таблицы, например, ее название. Для этого используется конструкция rename [то] new_table, в результате применения которой таблица получает новое имя new_table. В листинге 10.10 таблица products базы данных shop переименовывается в components.
Для переименования таблиц существует также отдельный оператор rename table, который имеет следующий синтаксис:
RENAME TABLE tbl__name TO new_tbl_name [, tbl_name2 TO new_tbl_name2, . . . ]
Результатом работы оператора является переименование таблицы tbl_name в new_tbl_name. В одном операторе можно переименовать сразу несколько таблиц. В листинге ЮЛ I таблицы users и orders меняются именами.
Так как в одной базе данных не может быть двух таблиц с одинаковыми именами, в листинге 10.11, таблице users потребовалось назначить временное имя backup_table, которое потом заменяется на orders.
Конструкция order BY field_name позволяет отсортировать записи таблицы по столбцу field_name. Следует учитывать, что созданная таблица не будет сохранять этот порядок строк после операций вставки и удаления. Так в листинге 10.12 записи таблицы catalogs сортируются по полю name.
В некоторых случаях эта возможность может облегчить операцию сортировки в MySQL, если таблица имеет такое расположение столбцов, которое вам нужно в дальнейшем. Эта опция в основном полезна, если заранее известен порядск, в котором преимущественно будут запрашиваться строки.
Конструкция auto_increment позволяет назначить новое значение для параметра таблицы auto_increment. В листинге 10.13 для таблицы catalogs выставляется значение auto_increment равное 1000, в результате чего добавление нового значения приведет к тому, что первичный ключ таблицы id_catalog получит значение 1000.
Помимо параметра auto_increment, таблицы имеют множество других параметров, кото рые можно изменять при помощи оператора alter table.