Хотите получать новые статьи блога
прямо себе на почту?
Укажите свой e-mail:


WorldSkills Russia
Яндекс.Метрика Интернет-издание Профобразование

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

0

План:

  1. Добавление столбца в таблицу
  2. Добавление первичного ключа
  3. Добавление внешнего ключа
  4. Добавление в таблицу индекса
    • обычного индекса
    • уникального индекса
    • полнотекстового индекса
  5. Изменение столбца таблицы
    • полное изменение описания столбца
    • изменение описания столбца без переименования
    • установка значения по умолчанию для столбца
    • удаление значения по умолчанию для столбца
  6. Удаление столбца таблицы
  7. Удаление первичного ключа
  8. Удаление внешнего ключа
  9. Удаление индекса
  10. Переименование таблицы
Агрегирование и групповые функции Скачать материал лекции в формате PDF

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

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

1
2
3
ALTER TABLE <имя таблицы>
ADD <имя столбца> <тип столбца> [<свойства столбца>]
[FIRST или AFTER <имя предшествующего столбца>];

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

Добавить столбец со свойством AUTO_INCREMENT можно только с одновременным созданием индекса или ключа для этого столбца.

2. Добавление первичного ключа

1
2
3
ALTER TABLE <имя таблицы>
ADD [CONSTRAINT <имя ключа> <тип столбца >]
PRIMARY KEY (<список столбцов>);

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

3. Добавление внешнего ключа

1
2
3
4
5
6
ALTER TABLE <имя таблицы>
ADD [CONSTRAINT <имя внешнего ключа>]
FOREIGN KEY [<имя индекса>] (<список столбцов>)
REFERENCES <имя родительской таблицы>
(<список столбцов первичного ключа родительской таблицы>)
[<правила поддержания целостности связи>];

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

4. Добавление в таблицу индекса

а) обычного индекса
1
2
ALTER TABLE <имя таблицы>
ADD INDEX [<имя индекса>] (<список столбцов>);
б) уникального индекса
1
2
3
ALTER TABLE <имя таблицы>
ADD [CONSTRAINT <имя ограничения>]
UNIQUE (<список столбцов>);
в) полнотекстового индекса
1
2
ALTER TABLE <имя таблицы>
ADD FULLTEXT [<имя индекса>] (<список столбцов>);

При добавлении в таблицу индекса мы указываем имя таблицы, в которую нужно добавить индекс, и имена столбцов, включенных в индекс. В случае необходимости можно также задать имя индекса.

5. Изменение столбца таблицы

а) полное изменение описания столбца
1
2
3
4
ALTER TABLE <имя таблицы>
CHANGE <прежнее имя столбца>
<новое имя столбца> <новый тип столбца> [<свойства столбца>]
[FIRST или AFTER <имя предшествующего столбца>];

В этой команде мы указываем имя таблицы, текущее имя столбца, новое имя столбца (которое может совпадать с текущим), новый тип столбца (который также может совпадать с текущим типом), а также, при необходимости, свойства столбца (старые свойства при выполнении команды CHANGE удаляются). Кроме того, можно определить место столбца среди остальных столбцов таблицы: изменяемый столбец может стать первым (FIRST) или следовать после указанного предшествующего столбца (AFTER).

Изменять тип столбца, который уже содержит какие-либо значения, необходимо с осторожностью, так как, при этом возможно внесение корректив в значение. Например, если тип данных с плавающей точкой меняется на целочисленный, числовые значения будут округлены.
б) изменение описания столбца без переименования
1
2
3
ALTER TABLE <имя таблицы>
MODIFY <имя столбца> <новый тип столбца> [<свойства столбца>]
[FIRST или AFTER <имя предшествующего столбца>];

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

в) установка значения по умолчанию для столбца
1
2
3
ALTER TABLE <имя таблицы>
ALTER <имя столбца>
SET DEFAULT <значение по умолчанию>;
г) удаление значения по умолчанию для столбца
1
2
3
ALTER TABLE <имя таблицы>
ALTER <имя столбца>
DROP DEFAULT;

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

1
2
ALTER TABLE <имя таблицы>
DROP <имя столбца>;

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

7. Удаление первичного ключа

1
2
ALTER TABLE <имя таблицы>
DROP PRIMARY KEY;

8. Удаление внешнего ключа

1
2
ALTER TABLE <имя таблицы>
DROP FOREIGN KEY <имя внешнего ключа>;

В этой команде необходимо указать имя внешнего ключа. Если вы не задали имя внешнего ключа при его создании, то имя было присвоено автоматически, и узнать его можно с помощью команды SHOW CREATE TABLE.

9. Удаление индекса

1
2
ALTER TABLE <имя таблицы>
DROP INDEX <имя индекса>;

В этой команде необходимо указать имя индекса. Если вы не задали имя индекса при его создании, то имя было присвоено автоматически, и узнать его можно с помощью команды SHOW CREATE TABLE.

10. Переименование таблицы

1
2
ALTER TABLE <имя таблицы>
RENAME <новое имя таблицы>;
Следует иметь ввиду, что модификация характеристик столбца может осуществляться не в любом случае, а с учетом следующих ограничений:

  • Изменение типа данных возможно только в том случае, если столбец пуст.
  • Для незаполненного столбца можно изменить размер/точность. Для заполненного столбца размер/точность можно увеличить, но нельзя понизить.
  • Ограничение NOT NULL может быть установлено, если ни одно значение в столбце не содержит NULL. Опцию NOT NULL всегда можно отменить.
  • Разрешается изменять значения, установленные по умолчанию.


Возникли вопросы?
Тогда смело пишите комментарий — рада буду ответить!
Агрегирование и групповые функции