Как добавить столбец в таблицу MySQL
В СУБД MySQL, как и в других базах данных помимо добавления и извлечения данных можно изменять структуру таблиц. Одной из таких возможностей является добавление нового столбца или столбцов в уже существующую таблицу. Для добавления новых столбцов существует специальная команда — ALTER TABLE ADD COLUMN.
В качестве параметров также можно задать ротацию, т.е. выбрать после каких уже существующих столбцов в таблице необходимо добавлять новые. В данной статье будет рассмотрено как выполняется добавление столбца в таблицу MySQL версии в операционной системе Ubuntu 20.04.
Как добавить столбец в таблицу MySQL
Для добавления новых столбцов в таблицу в СУБД MySQL присутствует специальная команда — ALTER TABLE ADD COLUMN. Ниже предоставлен её синтаксис:
ALTER TABLE имя_таблицы ADD COLUMN имя_нового_столбца тип_данных [ FIRST|AFTER имя_существующего_столбца ];
Сначала указывается имя таблицы, в которую будет добавлен новый столбец. Имя идёт сразу после команды ALTER TABLE. Далее после директивы ADD COLUMN необходимо указать имя нового столбца, который будет создан и задать его тип данных. Ключевое слово COLUMN можно опустить, оно не обязательно. Также в качестве дополнительных параметров можно указать положение нового столбца в таблице. Если указать FIRST, то столбец будет создан в самом начале таблице, также можно указать расположение после специфического столбца (при условии, что он присутствует в таблице) для этого необходимо вписать ключевое слово AFTER и указать имя уже существующего столбца в таблице.
В качестве примера будет создана таблица с именем personal_information и состоящая из одного столбца с именем id. Команда для создания таблицы с одним столбцом приведена ниже:
CREATE TABLE IF NOT EXISTS personal_information (id INT AUTO_INCREMENT PRIMARY KEY);

Убедимся, что столбец успешно создан и присутствует в таблице. Для этого необходимо выполнить команду DESCRIBE передав ей в качестве параметра имя таблицы:

Помимо вывода всех столбцов в таблице команда DESCRIBE также отображает типы данных столбцов а также наличие первичных и внешних ключей.
Добавление одного столбца в таблицу
Для того чтобы добавить столбец в таблицу MySQL не задавая порядок (при отсутствии порядка новый созданный столбец будет помещен в самый конец таблицы, в данном примере новый столбец с именем name будет находиться после столбца с именем id) необходимо выполнить следующую команду:
ALTER TABLE personal_information ADD COLUMN name VARCHAR(50) NOT NULL;

Добавление нескольких столбцов в таблицу
Для добавления двух и более столбцов необходимо воспользоваться той же командой ALTER TABLE ADD COLUMN при этом перечисляя данный аргумент через запятую. В примере ниже в таблицу с именем personal_information будут добавлены 2 новых столбца с именами last_name и city так как позиция столбцов не была указана, столбцы будут добавлены в конец таблицы. Команда будет выглядеть следующим образом:
ALTER TABLE personal_information ADD COLUMN last_name VARCHAR(50) NOT NULL, ADD COLUMN city VARCHAR (100) NOT NULL;

Добавление столбца в начало таблицы
Если присутствует необходимость в добавлении столбца в самое начало таблицы это можно сделать, добавив параметр FIRST в команду ALTER TABLE ADD COLUMN. Для начала выведем все столбцы таблицы с именем personal_information:

Теперь необходимо добавить новый столбец с именем customer_id который должен находиться перед столбцом id. Команда для добавления данного столбца будет выглядеть следующим образом:
ALTER TABLE personal_information ADD COLUMN customer_id INT FIRST;

Как видно на скриншоте выше новый столбец с именем customer_id был добавлен в самое начало (первым был столбец с именем id).
Добавление столбца после определённого столбца
Также создать столбец MySQL можно после определенного столбца. В качестве примера необходимо добавить новый столбец с именем country который должен находиться после столбца last_name (см. структуру таблицы ниже):

Для того чтобы добавить новый столбец после определенного столбца необходимо добавить параметр AFTER после которого следует имя уже присутствующего столбца в таблице. Команда будет выглядеть следующим образом:
ALTER TABLE personal_information ADD COLUMN country VARCHAR(100) AFTER last_name;

Новый созданный столбец country был добавлен после столбца last_name (см. скриншот выше).
Выводы
В данной небольшой статье была рассмотрено как добавить столбец в таблицу MySQL. Помимо этого, были описаны такие возможности добавления как добавление столбцов в самое начло таблицы и после специфического столбца. Есть ли у вас опыт работы с СУБД MySQL? Расскажите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
SQL ALTER TABLE Statement
The ALTER TABLE statement is used to add, delete, or modify columns in an existing table.
The ALTER TABLE statement is also used to add and drop various constraints on an existing table.
ALTER TABLE — ADD Column
To add a column in a table, use the following syntax:
The following SQL adds an "Email" column to the "Customers" table:
Example
ALTER TABLE — DROP COLUMN
To delete a column in a table, use the following syntax (notice that some database systems don’t allow deleting a column):
The following SQL deletes the "Email" column from the "Customers" table:
Example
ALTER TABLE — RENAME COLUMN
To rename a column in a table, use the following syntax:
ALTER TABLE — ALTER/MODIFY DATATYPE
To change the data type of a column in a table, use the following syntax:
SQL Server / MS Access:
My SQL / Oracle (prior version 10G):
Oracle 10G and later:
SQL ALTER TABLE Example
Look at the "Persons" table:
| ID | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Now we want to add a column named "DateOfBirth" in the "Persons" table.
We use the following SQL statement:
Notice that the new column, "DateOfBirth", is of type date and is going to hold a date. The data type specifies what type of data the column can hold. For a complete reference of all the data types available in MS Access, MySQL, and SQL Server, go to our complete Data Types reference.
The "Persons" table will now look like this:
| ID | LastName | FirstName | Address | City | DateOfBirth |
|---|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes | |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes | |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Change Data Type Example
Now we want to change the data type of the column named "DateOfBirth" in the "Persons" table.
We use the following SQL statement:
Notice that the "DateOfBirth" column is now of type year and is going to hold a year in a two- or four-digit format.
DROP COLUMN Example
Next, we want to delete the column named "DateOfBirth" in the "Persons" table.
Alter Table in SQL – How to Add a Column or Rename a Column in SQL

Ilenia Magoni

You have created your database and your tables, and after all this work, you notice that you need to add or rename a column. Well, you can use the ALTER TABLE statement to do so.
Just keep in mind that you need to be really careful when you do this. If your table has a lot of rows it can cause performance issues for your database.
Note: If the syntax presented here doesn’t work, check in the documentation for the implementation of SQL you are using. Most stuff works the same across the board, but there are some differences.
How to Add a New Column with ALTER TABLE
To add a new column, you first need to select the table with ALTER TABLE table_name , and then write the name of the new column and its datatype with ADD column_name datatype . Put together, the code looks like this:
Example of using ALTER TABLE to add a new column
We have a database of users as below:
| id | name | age | state | |
|---|---|---|---|---|
| 1 | Paul | 24 | Michigan | paul@example.com |
| 2 | Molly | 22 | New Jersey | molly@example.com |
| 3 | Robert | 19 | New York | robert@example.com |
We have reached a point where we need to store the identity document number of our users, so we need to add a new column for that.
To add a new column to our users table, we need to select the table with ALTER TABLE users and then specify the name of the new column and its datatype with ADD id_number TEXT . All together, looks like this:
The table with a new column will look as below:
| id | name | age | state | id_number | |
|---|---|---|---|---|---|
| 1 | Paul | 24 | Michigan | paul@example.com | NULL |
| 2 | Molly | 22 | New Jersey | molly@example.com | NULL |
| 3 | Robert | 19 | New York | robert@example.com | NULL |
You will need to use an UPDATE statement to add the missing info for the already existing users once it is provided.
How to create a new column with a default value instead of NULL
You can also create a column with a default value using the default keyword followed by the value to use. Users will then see that default instead of having the missing values be filled in with NULL.
Let’s say that we will have international users starting soon, and we want to add a country column. All our existing users are from the United States, so we can use that as the default value.
The table will then look like this:
| id | name | age | state | id_number | country | |
|---|---|---|---|---|---|---|
| 1 | Paul | 24 | Michigan | paul@example.com | NULL | United States |
| 2 | Molly | 22 | New Jersey | molly@example.com | NULL | United States |
| 3 | Robert | 19 | New York | robert@example.com | NULL | United States |
Be Careful When Adding New Columns to Tables
If your table has already a lot of rows – like if you have already a lot of users, or a lot of stored data – adding a new column can be really resource intensive. So make sure to handle this an operation with care.
How to Rename a Column with ALTER TABLE
You can rename a column with the below code. You select the table with ALTER TABLE table_name and then write which column to rename and what to rename it to with RENAME COLUMN old_name TO new_name .
Example of how to rename a column
Let’s look at the same table we used in the previous example:
| id | name | age | state | id_number | country | |
|---|---|---|---|---|---|---|
| 1 | Paul | 24 | Michigan | paul@example.com | NULL | United States |
| 2 | Molly | 22 | New Jersey | molly@example.com | NULL | United States |
| 3 | Robert | 19 | New York | robert@example.com | NULL | United States |
To avoid confusion between the id and the id_number columns, let’s rename the first one as user_id .
We will first select the table with ALTER TABLE users and then declare the column name so it changes to what we want to change it to with RENAME COLUMN id TO user_id .
After using the query, the table will look like this:
| user_id | name | age | state | id_number | country | |
|---|---|---|---|---|---|---|
| 1 | Paul | 24 | Michigan | paul@example.com | NULL | United States |
| 2 | Molly | 22 | New Jersey | molly@example.com | NULL | United States |
| 3 | Robert | 19 | New York | robert@example.com | NULL | United States |
Be careful when renaming a column in a table
When you rename columns using ALTER TABLE you risk breaking database dependencies.
If you use a database refactoring tool to change the name of a column instead of using ALTER TABLE it will manage all the dependencies and update them with the new column name.
If you have a small database you may not need to worry, but it is important to keep in mind.
Conclusion
In this article, you have learned how to use ALTER TABLE to add a column and rename a column in a table.
Just remember that both are operations that come with their own risks that are important to know. As someone said, with great power come great responsibility – and ALTER TABLE is a great power, so use it carefully!
SQL ALTER TABLE
Инструкция ALTER TABLE используется для добавления, удаления или изменения столбцов в существующей таблице.
Инструкция ALTER TABLE также используется для добавления и удаления различных ограничений на существующую таблицу.
ALTER TABLE — ADD column
Чтобы добавить столбец в таблицу, используйте следующее Синтаксис:
Следующий SQL — добавляет колонку "Email" для таблицы "Customers":
Пример
ALTER TABLE — DROP COLUMN
Чтобы удалить столбец в таблице, используйте следующую команду синтаксис (обратите внимание, что некоторые системы баз данных не позволяют удалить столбец):
Следующий SQL удаляет столбец "Email" из таблицы "Customers":
Пример
ALTER TABLE — ALTER/MODIFY COLUMN
Чтобы изменить тип данных столбца в таблице, используйте следующие синтаксис:
SQL Сервер / MS Доступ:
My SQL / Оракул (предыдущая версия 10G):
Оракул 10G и более поздние версии:
Пример ALTER TABLE
Посмотрите на таблицу "Persons":
| ID | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Теперь мы хотим добавить столбец с именем "DateOfBirth" в таблицу "Persons".
Мы используем следующую инструкцию SQL:
Обратите внимание, что новый столбец "DateOfBirth" имеет тип date и будет содержать дату. Тип данных указывает, какой тип данных может содержать столбец. Для получения полного описания всех типов данных, доступных в MS Access, MySQL и SQL Server, перейдите к нашему полному Справочнику типов данных.
Таблица "Persons" теперь будет выглядеть так:
| ID | LastName | FirstName | Address | City | DateOfBirth |
|---|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes | |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes | |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Пример изменения типа данных
Теперь мы хотим изменить тип данных столбца с именем "DateOfBirth" в таблице "Persons".
Мы используем следующую инструкцию SQL:
Обратите внимание, что столбец "DateOfBirth" теперь имеет тип year и будет содержать year в двух или четырехзначном формате.
Пример DROP COLUMN
В первую очередь, мы хотим удалить столбец с именем "DateOfBirth" в таблице "Persons".
Мы используем следующую инструкцию SQL:
Таблица "Persons" теперь будет выглядеть так:
| ID | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Мы только что запустили
SchoolsW3 видео
ВЫБОР ЦВЕТА

Сообщить об ошибке
Если вы хотите сообщить об ошибке или внести предложение, не стесняйтесь отправлять на электронное письмо:
Ваше предложение:
Спасибо Вам за то, что помогаете!
Ваше сообщение было отправлено в SchoolsW3.
ТОП Учебники
ТОП Справочники
ТОП Примеры
Получить сертификат
SchoolsW3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания. Некоторые страницы сайта могут быть не переведены на РУССКИЙ язык, можно отправить страницу как ошибку, так же можете самостоятельно заняться переводом. Используя данный сайт, вы соглашаетесь прочитать и принять Условия к использованию, Cookies и политика конфиденциальности.