Cоздание и удаление таблиц MySQL

Cоздание таблиц MySQL

Команда CREATE TABLE создает новую таблицу в выбранной базе данных. В простейшем случае команда имеет следующий синтаксис:

CREATE TABLE table_name [(create_definition, ...)][table_options];

Здесь table_name — имя создаваемой таблицы; create_definition — объявление столбца, его типов и атрибутов. В конце оператора может следовать необязательное указание типа таблицы table_options, например, TYPE = MyISAM.

Создадим таблицу базы данных forum, которая называется authors и содержит различные данные о зарегистрированных посетителях форума:

Создание таблицы authors базы данных forum

Создание таблицы authors базы данных forum

Примечание. Символ -> означает продолжение строки запроса. Набирается с клавиатуры он не должен, клиент mysql сам автоматически выставляет его при переходе на другую строку.

Выполнив SQL-команду SHOW TABLES, можно убедиться, что таблица authors успешно создана.

Таблица authors успешно создана

Команда DESCRIBE показывает структуру созданных таблиц и имеет следующий синтаксис:

DESCRIBE table_name;

Здесь table_name — имя таблицы, структура которой запрашивается.

Примечание. Команда DESCRIBE не входит в стандарт SQL и является внутренней командой СУБД MySQL.

Просмотреть структуру таблицы authors можно, выполнив SQL -запрос.

Команда DESCRIBE

mysql >DESCRIBE authors;

После выполнения этой команды интерпретатор MySQL выведет таблицу.

Команда DESCRIBE

Примечание. Более полное описание структуры таблицы authors, включающее права доступа и комментарии, можно получить, воспользовавшись оператором SHOW FULL COLUMNS authors;

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

Примечание. Для удобства на форуме может быть создано несколько различных разделов. К примеру, на форуме, посвященном языкам программирования, чтобы не смешиватьтемы, относящиеся к различным языкам, имеет смысл создать следующие разделы: C++, PHP, JavaScript и т.д.

В таблице forums присутствуют следующие поля:

Coздадим SQL-запрос, создающий таблицу forums.

Создание таблицы forums

Создание таблицы forums

Посмотрим структуру таблицы forums.

Структура таблицы forums

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

Теперь создадим таблицу themes, содержащую темы форума. В таблице создадим следующие поля:

Создание таблицы themes

Создание таблицы themes

Структура таблицы themes

Структура таблицы themes

Таблица themes нормализована только частично. Она содержит два внешних ключа: id_author и id_forum для таблиц посетителей и списка форумов, в то же время в ней дублируется имя автора author, присутствующее также в таблице посетителей authors под именем name. Этот случай является примером умышленной денормализации, необходимой для избежания запроса таблицы авторов, что позволяет обеспечить приемлемую скорость работы форума.

Создадим последнюю таблицу posts в которой будут храниться сообщения. В таблице posts создадим следующие поля:

Создание таблицы posts

Создание таблицы posts

Структура таблицы posts

Структура таблицы posts

Убедимся, что все таблицы успешно созданы, выполнив команду SHOW TABLES.

Список таблиц базы данных forum

Список таблиц базы данных forum

Mы знаем как посмотреть структуру таблицы. Изменить структуру таблицы позволяет оператор ALTER TABLE. С его помощью можно добавлять и удалять столбцы, создавать и уничтожать индексы, переименовывать столбцы и саму таблицу. Оператор имеет следующий синтаксис:

ALTER TABLE table_ name alter_spec

Наиболее часто используемые значения alter_spec приведены в таблице.

Основные преобразования, выполняемые оператором ALTER TABLE

Синтаксис Описание команды
ADD create_definition
[ FIRST|AFTER column_name]

Добавляет новый столбец. create_definition представляет собой название нового столбца и его тип. Конструкция FIRST добавляет новый столбец перед столбцом column_name; конструкция AFTER — после него. Если место добавления не указано, столбец добавляется в конец таблицы.

ADD INDEX [index_name]
(index_col_name, . . .)

Добавляет индекс index_name для столбца index_col_name. Если имя индекса не указывается, ему присваивается имя, совпадающее с именем столбца index_col_name.

ADD PRIMARY KEY
(index_col_name, . . .)

Делает столбец index_col_name или группу столбцов первым ключем таблицы

CHANGE old_col_name
new_col_name type

Заменяет столбец с именем old_col_name на столбец с именем new_col_name и типом type

DROP col_name Удаляет столбец с именем col_name
DROP PRIMARY KEY Удаляет первичный ключ таблицы
DROP INDEX index_name Удаляет индекс index_name

Добавим в таблицу forums новый столбец test разместив его после столбца name.

Добавление столбца в таблицу

Добавление столбца в таблицу

Структура таблицы forums после добавления столбца test

Структура таблицы forums после добавления столбца test

Теперь переименуем созданный столбец test в текстовой столбец new_test.

Переименование столбца

Переименование столбца

Структура таблицы forums после переименования столбца test в new_test

Структура таблицы forums после переименования столбца test в new_test

При изменении только типа столбца указание имени все равно необходимо, хотя в этом случае оно будет фактически повторяться.

Изменение типа столбца

Изменение типа столбца

Структура таблицы forums после изменения типа столбца

Структура таблицы forums после изменения типа столбца

Теперь удалим столбец new_test.

Удаление столбца из таблицы

Удаление столбца из таблицы

Структура таблицы forums после удаления столбца new_test

Структура таблицы forums после удаления столбца new_test

Удаление таблиц MySQL

Оператор DROP TABLE предназначен для удаления одной или нескольких таблиц:

DROP TABLE table_name [, table_name, . . .]

Например, для удаления таблицы forums необходимо выполнить SQL-запрос представленный ниже.

Удаление таблицы forums

Удаление таблицы forums




  • Другие |

Похожие материалы по теме: Создание таблиц баз данных

назадвверхвперед
Rambler's Top100