Переименование таблиц
После обсуждения методов модификации столбцов и индексов в таблице можно приступить к модификации самих таблиц. Это сделать несложно. Предположим, что нужно переименовать таблицу gruppirovka на prestupnaya_gruppirovka. Используйте следующую инструкцию:
mysql> ALTER TABLE gruppirovka RENAME TO
-> prestupnaya_gruppirovka;
Query OK. 0 rows affected (0.00 sec)
Ключевое слово TO является опциональным.
С помощью инструкций ALTER можно также выполнять следующие операции.
Изменять набор символов и порядок сопоставления по умолчанию для базы данных, таблицы или столбца.
Изменять способ организации строк в таблице. Это удобно, если нужен доступ к строкам в определенном порядке и хотим таким же образом извлекать данные.
Управлять и изменять ограничения. Например, можно добавлять и удалять внешние ключи.
Начиная с версии MySQL 5.1, также можно изменять имя базы данных с помощью инструкции RENAME DATABASE:
mysql> RENAME DATABASE имя_старой_базы_данных имя_новой_данных;
Query OK, 0 rows affected (0.01 sec)
Удаление баз данных
Удалить, или сбросить, базу данных не составляет труда. В следующем примере сбрасим БД prestupnost:
mysql> DROP DATABASE prestupnost;
Query OK. 3 rows affected (0.01 sec)
Количество строк, возвращаемых в результатах, равно количеству удаленных таблиц. Следует проявлять осторожность при сбросе базы данных, поскольку при этом удаляются все таблицы, индексы и столбцы, а также все связанные с ней файлы и папки на диске, которые сервер MySQL использовал для поддержки БД.
Попытка сбросить несуществующую базу данных вызовет ошибку. Попробуем вновь сбросить базу данных prestupnost:
mysql> DROP DATABASE prestupnost;
ERROR 1008 (HY000): Can’t drop database ’prestupnost'; database doesn't exist
Этой ошибки можно избежать с помощью ключевой фразы IF EXISTS, что удобно при включении инструкции в сценарий:
mysql> DROP DATABASE IF EXISTS prestupnost;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Предупреждение все же выводится, поскольку база данных prestupnost уже была сброшена. Можно просмотреть это предупреждение с помощью инструкции SHOW WARNING, которая появилась в версии MySQL 4.1.0.
Если вы не включите в инструкцию ключевую фразу IF EXISTS, то вместе с предупреждением будет сгенерировано сообщение об ошибке.
Удаление таблиц
Удалять таблицы так же просто, как и базы данных. В следующем примере создадим и удалим таблицу из базы данных prestupnost:
mysql> CREATE TABLE temp (temp INT(3), PRIMARY KEY (temp));
Query OK, 0 rows affected (0.00 sec) mysql> DROP TABLE temp;
Query OK. 0 rows affected (0.00 sec)
Сообщение 0 rows affected ошибочно. Таблица действительно была создана и удалена.
Для предотвращения ошибок следует использовать ключевую фразу IF EXISTS. Попытаемся вновь сбросить таблицу temp:
mysql> DROP TABLE IF EXISTS temp;
Query OK, 0 rows affected, 1 warning (0.00 sec)
Можно сбросить сразу несколько таблиц, указав их имена в одной инструкции и разделив их запятыми:
mysql> DROP TABLE IF EXISTS temp, tempi, temp2;
Query OK, 0 rows affected, 3 warnings (0.00 sec)
При удалении любых структур необходимо создать резервные копии бызы данных, которые позволят восстановить утраченные данные в результате ошибочных действий.
Контрольные вопросы
- 1. Какие наборы символов MySQL?
- 2. Каково назначение типа данных INT?
- 3. Каково назначение типа данных DECIMAL?
- 4. Каково назначение типа данных DATE?
- 5. Каково назначение типа данных TIME?
- 6. Каково назначение типа данных TIMESTAMP?
- 7. Каково назначение типа данных CHAR?
- 8. Каково назначение типа данных BOOLEAN?
- 9. Каково назначение типа данных TINYINT, SMALLINT, MEDIUMINT?