В этом уроке мы рассмотрим как изменять существующею таблицу в системе управления базами данных MySQL и так приступим:
Добавление столбца в существующею таблицу:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD <ИМЯ СТОЛБЦА КОТОРЫЙ ХОТИТЕ ДОБАВИТЬ | ТИП ДАННЫХ НОВОГО СТОЛБЦА>
Также есть такие параметры как FIRST и AFTER:
FIRST добавляет новый столбец в начало таблицы.
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD <ИМЯ СТОЛБЦА КОТОРЫЙ ХОТИТЕ ДОБАВИТЬ | ТИП ДАННЫХ НОВОГО СТОЛБЦА> FIRST
AFTER добавляет новый столбец после предыдущего столбца, который вы укажите
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD <ИМЯ СТОЛБЦА КОТОРЫЙ ХОТИТЕ ДОБАВИТЬ | ТИП ДАННЫХ НОВОГО СТОЛБЦА> AFTER <ИМЯ ПРЕДЫДУЩЕГО СТОЛБЦА>
Если параметры FIRST и AFTER не указаны то новый столбец будет перемещен в конец таблицы.
Пример использования:
Добавление столбца:
ALTER TABLE DATA ADD UROK1 VARCHAR(40);
Добавление столбца с параметром FIRST:
ALTER TABLE DATA ADD UROK2 VARCHAR(40) FIRST;
Добавление столбца с параметром AFTER:
ALTER TABLE DATA ADD UROK3 VARCHAR(40) AFTER UROK2;
Параметры целостности таблицы при удалении:
•ON DELETE CASCADE Удаляет все ссылающейся строки в родительской таблице на дочернюю таблицу. Удаляет строки в дочерней таблице когда она связанна внешнем ключом.
•ON DELETE SET NULL Обнуляет значения внешнего ключа в определенных строках дочерней таблицы.
•ON DELETE RECTRICT или такое ON DELETE NO ACTION запрещает удалять строки в родительской таблице если дочерняя таблица на неё ссылается
Если вы не задали параметр целостности таблицы то по умолчанию используется параметр ON DELETE RECTRICT
Параметры изменения строк в родительской таблице:
•ON UPDATE CASCADE Каскадное обновление значений строк дочерней таблицы а также изменятся значение внешнего ключа.
• ON UPDATE SET NULL Обнуление значения внешнего ключа в дочерней таблице.
• ON UPDATE RECTRICT или ON UPDATE NO ACTION запрещает изменять первичный ключ в строках родительской таблице, при наличии ссылающихся строк в дочерней таблице.
Добавление первичного ключа:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD [CONSTRAIN <ИМЯ КЛЮЧА>] PRIMARY KEY(<СПИСОК СТОЛБЦОВ>);
Добавление внешнего ключа:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD [CONSTRAIN <ИМЯ КЛЮЧА>] FOREIGN KEY(<ИНДЕКС ИЛИ СТОЛБЕЦ>) REFERENCES <ИМЯ РОДИТЕЛЬСКОЙ ТАБЛИЦЫ> (<ПЕРВИЧНЫЙ КЛЮЧ РОДИТЕЛЬСКОЙ ТАБЛИЦЫ>);
Чтобы команды выполнились необходимо в созданной таблице иметь переменные которые вы ходите сделать первичным ключом или внешним ключом.
Если в таблице отсутствует первичный ключ то команда будет выглядеть так:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD PRIMARY KEY(<ИМЯ СТОЛБЦА>);
Если в таблице отсутствует внешний ключ то команда будет выглядеть так:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD FOREIGN KEY(<ИМЯ СТОЛБЦА В ДОЧЕРНЕЙ ТАБЛИЦЫ>) REFERENCES <НАЗВАНИЕ РОДИТЕЛЬСКОЙ ТАБЛИЦЫ> (<ПЕРВИЧНЫЙ КЛЮЧ РОДИТЕЛЬСКОЙ ТАБЛИЦЫ>);
Добавление в таблицу индекса:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ADD INDEX [<ИМЯ ИНДЕКСА>] (<СПИСОК СТОЛБЦОВ КОТОРЫЕ ВОЙДУТ В ИНДЕКС>);
Изменение имя столбца:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> CHANGE <СТАРОЕ ИМЯ СТОЛБЦА> <НОВОЕ ИМЯ СТОЛБЦА> <ТИП ДАННЫХ НОВОГО СТОЛБЦА>
ВНИМАНИЕ: Данные в старом столбце изменятся или удалятся при изменении имени или типа данных.
Пример использования:
ALTER TABLE DATA CHANGE UROK2 UROKR VARCHAR(50);
При использовании CHANGE типы данных могут совпадать или заменять одни типы данных на другие также здесь применимы свойства FRIST и AFTER.
Изменение описания столбца без изменения имени:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> MODIFY <ИМЯ СТОЛБЦА> <НОВЫЙ ТИП ДАННЫХ СТОЛБЦА> [<ОПИСАНИЕ СТОЛБЦА>];
Также поддерживает свойства FIRST и AFTER.
Пример использования:
ALTER TABLE DATA MODIFY UROKR INT;
Работа со значениями по умолчанию:
Установка значения по умолчанию:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ALTER <НАЗВАНИЕ СТОЛБЦА> SET DEFAULT <"ВАШЕ ЗНАЧЕНИЕ">;
Пример использования:
ALTER TABLE DATA ALTER UROK3 SET DEFAULT "Данные";
Удаление значения по умолчанию:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ALTER <НАЗВАНИЕ СТОЛБЦА> DROP DEFAULT;
Пример использования:
ALTER TABLE DATA ALTER UROK3 DROP DEFAULT;
Удаление столбца:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> DROP <НАЗВАНИЕ СТОЛБЦА>;
Пример использования:
ALTER TABLE DATA DROP UROKR;
Удаление первичного ключа:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> DROP PRIMARY KEY;
Пример использования:
ALTER TABLE DATA DROP PRIMARY KEY;
Удаление внешнего ключа:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> DROP FOREIGN KEY(<ИМЯ ВНЕШНЕГО КЛЮЧА>);
Пример использования:
ALTER TABLE DATA DROP FOREIGN KEY(id);
Удаление индекса в таблице:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> DROP INDEX <ИМЯ ИНДЕКСА КОТОРЫЙ ХОТИМ УДАЛИТЬ>;
Отключение неуникальных значений в индексе, в типе таблицы MyISAM:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> DISABLE KEYS;
Включение неуникальных значений в индексе, в типе таблицы MyISAM:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ENABLE KEYS;
Изменение названия таблицы:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> RENAME <НОВОЕ ИМЯ ТАБЛИЦЫ>;
Упорядочивание столбцов в таблице:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ORDER BY <ИМЯ СТОЛБЦА 1><ИМЯ СТОЛБЦА 2> ASK | DESC
ASC Данное свойство упорядочивает столбцы по возрастанию.
DESC Данное свойство упорядочивает столбцы по убыванию.
Изменение типа таблицы:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> ENGINE <ТИП ТАБЛИЦЫ>;
Изменение кодировки таблицы:
ALTER TABLE <ИМЯ ВАШЕЙ ТАБЛИЦЫ> CONVERT TO <ПАРАМЕТР CHARACTER SET ИЛИ COLLATE>;
Пример использования:
ALTER TABLE DATA CONVERT TO CHARACTER SET utf8;
Данная команда изменит текущую кодировку на кодировку utf8 в существующей таблицы.