Для добавления, удаления либо изменения колонок существующей таблицы, в языке SQL используется команда ALTER TABLE. Данная команда также используется для добавления, либо удаления различных констрейнтов в/из существующих таблиц.
Запрос с использованием команды ALTER TABLE для добавления новой колонки имеет следующий вид:
ALTER TABLE имя_таблицы ADD имя_колонки тип_данных;
Для удаления колонки:
ALTER TABLE имя_таблицы DROP имя_колонки;
Для изменения типа данных:
ALTER TABLE имя_таблицы MODIFY COLUMN имя_колонки тип_данных;
Для добавления констрейнта (например, NOT NULL):
ALTER TABLE имя_таблицы MODIFY имя_колонки тип_данных NOT NULL;
Для удаления констрейнта (например, NOT NULL):
ALTER TABLE имя_таблицы DROP CONSTRAINT someConstraint;
Пример:
Предположим, что у нас есть таблица developers, которая содержит следующие записи:
+----+-------------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
| 1 | Eugene Suleimanov | Java | 2 | 2500 |
| 2 | Peter Romanenko | Java | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 3 | 2500 |
| 4 | Konstantin Geiko | C# | 2 | 2000 |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 |
| 6 | Kolya Nikolaev | Javascript | 5 | 3400 |
| 7 | Ivan Ivanov | C# | 1 | 900 |
| 8 | Ludmila Geiko | UI/UX | 2 | 1800 |
+----+-------------------+------------+------------+--------+
Допустим, что мы хотим добавить новую колонку AGE (возраст).
Для этого нам необходимо использовать следующую команду:
mysql> ALTER TABLE developers ADD AGE INT;
Теперь наша таблица содержит данные такого вида:
+----+-------------------+------------+------------+--------+------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY | AGE |
+----+-------------------+------------+------------+--------+------+
| 1 | Eugene Suleimanov | Java | 2 | 2500 | NULL |
| 2 | Peter Romanenko | Java | 3 | 3500 | NULL |
| 3 | Andrei Komarov | JavaScript | 3 | 2500 | NULL |
| 4 | Konstantin Geiko | C# | 2 | 2000 | NULL |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 | NULL |
| 6 | Kolya Nikolaev | Javascript | 5 | 3400 | NULL |
| 7 | Ivan Ivanov | C# | 1 | 900 | NULL |
| 8 | Ludmila Geiko | UI/UX | 2 | 1800 | NULL |
+----+-------------------+------------+------------+--------+------+
Теперь попробуем удалить колонку AGE.
Для этого выполним следующий запрос:
mysql> ALTER TABLE developers DROP AGE;
В результате выполнения данного запроса, наша таблица будет иметь записи следующего вида:
+----+-------------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
| 1 | Eugene Suleimanov | Java | 2 | 2500 |
| 2 | Peter Romanenko | Java | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 3 | 2500 |
| 4 | Konstantin Geiko | C# | 2 | 2000 |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 |
| 6 | Kolya Nikolaev | Javascript | 5 | 3400 |
| 7 | Ivan Ivanov | C# | 1 | 900 |
| 8 | Ludmila Geiko | UI/UX | 2 | 1800 |
+----+-------------------+------------+------------+--------+
На этом мы заканчиваем изучения способа изменения структуры таблицы.
В следующей статье мы рассмотрим способ удаления всех данных из таблицы.