Иногда бывает, что вы создали таблицу в MySQL, но после недолгой работы обнаружили, что вам нужно внести изменения в таблицу, например:
добавить столбец в таблицу MySQL;
переименовать таблицу;
удалить столбец;
и др.
Эффективный способ осуществить все эти действия — использовать оператор «ALTER TABLE». С помощью этого оператора можно:
добавить столбец;
удалить столбец;
модифицировать столбец;
переименовать таблицу;
изменить кодировку таблицы;
добавить, убрать или изменить ограничения в таблице;
и др.
В сегодняшней статье мы остановимся на наиболее популярных способах использования команды «ALTER TABLE».
Команда «ALTER TABLE»
Общий синтаксис команды «ALTER TABLE» выглядит так:
ALTER TABLE Наименование_таблицы
{ ADD наименование_нового_столбца указать_тип_информации_столбца [атрибуты_столбца] |
DROP COLUMN наименование_столбца |
MODIFY COLUMN наименование_столбца указать_тип_информации_столбца [атрибуты столбца] |
ALTER COLUMN наименование_столбца SET DEFAULT назначаем_значение_по_умолчанию |
ADD [CONSTANT] определяем_ограничения_таблицы |
DROP [CONSTANT] задаем_название_ограничениям }
Возможностей у команды «ALTER TABLE» намного больше, но не все они используются на практике, поэтому остановимся на тех, которые могут часто встретиться.
MySQL: как добавить столбец в таблицу
Представим, что у вас есть таблица MySQL с какой-то информацией под названием «MyTable», куда нужно добавить столбец «NewColumn». Код будет таким:
ALTER TABLE MyTable
ADD NewColumn VARCHAR(60) NULL;
В коде мы создали новый столбец «MyTable» с типом данных «VARCHAR» и атрибутом «NULL».
Добавить столбец в таблицу MySQL — не проблема. Однако это может стать проблемой, когда таблица далеко не новая и заполнена большим объемом информации, особенно когда таблица содержит очень много строк. Поэтому добавление столбцов нужно использовать с осторожностью, чтобы не навредить. Если таблица новая, тогда проблем возникнуть не должно.
MySQL: как удалить столбец
Чуть выше мы добавили новый столбец в таблицу MySQL, теперь давайте его удалим. Таким же способом можно удалить любой столбец таблицы. Для этого будем использовать следующий код:
ALTER TABLE MyTable
DROP COLUMN NewColumn
MySQL: как изменить значение столбца по умолчанию
Представим, что в добавленном столбце нужно изменить значение по умолчанию, в нашем случае это будет число «35». Для этого будем использовать такой код:
ALTER TABLE MyTable
ALTER COLUMN NewColumn SET DEFAULT 35;
MySQL: как изменить тип столбца
Иногда нужно поменять тип информации, сохраняемой в столбце. В нашем случае мы при добавлении столбца указали тип данных «VARCHAR». Теперь давайте сменим его на «CHAR(90)», но оставим тот же атрибут «NULL». Код будет таким:
ALTER TABLE MyTable
MODIFY COLUMN NewColumn CHAR(90) NULL;
MySQL: как переименовать столбец таблицы
Допустим, мы хотим название нашего столбца «NewColumn» поменять на другое название — «OldColumn». В этом случае нам поможет вот такой код:
ALTER TABLE MyTable
RENAME COLUMN NewColumn TO OldColum
С переименованием столбцов таблицы нужно быть осторожными, потому что, если с этим столбцом была настроена какая-то зависимость, тогда она будет нарушена, а потому повлечет дальнейшие проблемы в работе с базой данных. Поэтому для переименования столбцов таблицы лучше всего использовать инструмент рефакторинга, который управляет зависимостями и обновит их при переименовании столбца этим инструментом.
MySQL: как переименовать таблицу
Метод «ALTER TABLE» хорош тем, что он работает не только «внутри» таблицы, но и с самой таблицей. Например, с его помощью можно переименовать таблицу MySQL. В нашем случае название «MyTable» мы поменяем на «GoodTable». Вот как это делается в коде:
ALTER TABLE MyTable RENAME TO GoodTable
Заключение
Сегодня мы разобрали, как довольно просто можно:
добавить столбец в таблицу MySQL;
переименовать таблицу MySQL;
удалить столбец из таблицы MySQL;
и др.
В других СУБД команда «ALTER TABLE» может не работать или работать некорректно, поэтому лучше перед ее применением изучить официальную документацию вашей СУБД.
SQL