COMMENT \'Сведения о клиентах\'

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

Изменение структуры таблицы

В этом подразделе будет описано, как изменить те параметры таблицы, которые мы обсуждали в предыдущем подразделе. Для модификации ранее созданной таблицы используется команда ALTER TABLE. Задавая различные параметры этой команды, вы можете внести в таблицу следующие изменения.

• Добавить столбец вы можете с помощью команды

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

ADD <Имя столбца> <Тип столбца> [<Свойства столбца>]

[FIRST или AFTER <Имя предшествующего столбца>];

В этой команде мы указываем имя таблицы, в которую добавляется столбец, а также имя и тип добавляемого столбца (о типах столбцов см. пункт «Типы данных в MySQL»). При необходимости можно также задать свойства добавляемого столбца (см. пункт «Свойства столбцов»). Кроме того, можно определить место нового столбца среди уже существующих: добавляемый столбец может стать первым (FIRST) или следовать после указанного предшествующего столбца (AFTER). Если место столбца не задано, он становится последним столбцом таблицы. Например, чтобы добавить в таблицу Products (Товары) столбец store (название склада, где хранится каждый вид товара), выполните команду

ALTER TABLE Products ADD store VARCHAR(100) AFTER details;

...

Примечание

Добавить столбец со свойством AUTO_INCREMENT можно только с одновременным созданием индекса или ключа для этого столбца. Например, если бы столбец id не был включен в таблицу Products (Товары) при ее создании, мы могли бы добавить его с помощью команды

ALTER TABLE Products

ADD id BIGINT AUTO_INCREMENT, ADD PRIMARY KEY (id);

• Добавить первичный ключ вы можете с помощью команды

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

ADD [CONSTRAINT <Имя ключа>]

PRIMARY KEY (<Список столбцов>);

При добавлении в таблицу первичного ключа мы указываем имя таблицы, в которую нужно добавить ключ, и имена столбцов, которые будут образовывать первичный ключ (эти столбцы должны уже существовать в таблице). Более подробно о первичных ключах было сказано в пункте «Ключевые столбцы и индексы». Например, если бы первичный ключ не был определен при создании таблицы Orders (Заказы), мы могли бы добавить его с помощью команды

ALTER TABLE Orders ADD PRIMARY KEY (id);

• Добавить внешний ключ вы можете с помощью команды

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

ADD [CONSTRAINT <Имя внешнего ключа>]

FOREIGN KEY [<Имя индекса>] (<Список столбцов>)

REFERENCES <Имя родительской таблицы>

(<Список столбцов первичного ключа родительской таблицы>)

[<Правила поддержания целостности связи>];

При добавлении в таблицу внешнего ключа мы указываем имя таблицы, в которую нужно добавить ключ, имена столбцов, которые будут образовывать внешний ключ (эти столбцы должны уже существовать в таблице), а также имя родительской таблицы (на которую будет ссылаться данная таблица) и имена столбцов, образующих первичный ключ в родительской таблице. В случае необходимости можно также задать имя создаваемого внешнего ключа, имя индекса, автоматически добавляемого для столбцов внешнего ключа, и правила поддержания целостности связи при удалении и изменении строк родительской таблицы. Например, если бы внешний ключ не был определен при создании таблицы Orders (Заказы), мы могли бы добавить его с помощью команды

ALTER TABLE Orders

ADD FOREIGN KEY (customer_id) REFERENCES Customers (id)

ON DELETE RESTRICT ON UPDATE CASCADE);

Более подробно о внешних ключах говорилось в пункте «Ключевые столбцы и индексы». • Добавить в таблицу обычный индекс вы можете с помощью команды

ALTER TABLE <Имя таблицы> ADD INDEX [<Имя индекса>] (<Список столбцов>);

Перейти на страницу:

Похожие книги