Найти в Дзене
IT_WORLD BLOG

Изменение структуры таблицы в MySQL(Урок 8)

В этом уроке мы рассмотрим как изменять существующею таблицу в системе управления базами данных 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

В этом уроке мы рассмотрим как изменять существующею таблицу в системе управления базами данных 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;

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

Добавление столбца с параметром AFTER:

ALTER TABLE DATA ADD UROK3 VARCHAR(40) AFTER UROK2;

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

Параметры целостности таблицы при удалении:

•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 в существующей таблицы.