Alter Table в SQL - Как добавить столбец или переименовать столбец в SQL

Alter Table в SQL - Как добавить столбец или переименовать столбец в SQL

Вы создали свою базу данных и свои таблицы, и после всей этой работы вы заметили, что вам нужно добавить или переименовать столбец. Что ж, вы можете использовать для этого оператор ALTER TABLE.

Просто имейте в виду, что при этом нужно быть очень осторожным. Если в вашей таблице много строк, это может вызвать проблемы с производительностью вашей базы данных.

Примечание. Если приведенный здесь синтаксис не работает, обратитесь к документации по своей СУБД. Большинство вещей работает одинаково, но есть некоторые различия для различных СУБД.

Как добавить новую колонку с помощью ALTER TABLE 

Чтобы добавить новый столбец, вам сначала нужно выбрать таблицу с помощью ALTER TABLE имя_таблицы, а затем написать имя нового столбца и его тип данны вместе с операторомо ADD.  В совокупности код выглядит так:

ALTER TABLE table_name
ADD column_name datatype;

 Например у нас есть база данных пользователей, как показано ниже:

id name age state email
1 Paul 24 Michigan paul@example.com
2 Molly 22 New Jersey molly@example.com
3 Robert 19 New York robert@example.com

Настал момент, когда нам нужно сохранить номера документов, удостоверяющих личность наших пользователей, поэтому нам нужно добавить для этого новый столбец.

Чтобы добавить новый столбец в нашу таблицу пользователей, нам нужно выбрать таблицу с ALTER TABLE users, а затем указать имя нового столбца и его тип данных с помощью оператора ADD id_number TEXT. Все вместе выглядит так:

ALTER TABLE users
ADD id_number TEXT;

Таблица с новым столбцом будет выглядеть следующим образом:

 

id name age state email 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

Вам нужно будет использовать оператор UPDATE, чтобы добавить недостающую информацию для уже существующих пользователей, как только она будет предоставлена. 

Как создать новый столбец со значением по умолчанию вместо NULL

Вы также можете создать столбец со значением по умолчанию, используя ключевое слово default, за которым следует используемое значение. Тогда пользователи увидят это значение по умолчанию вместо того, чтобы пропущенные значения были заполнены NULL.

Предположим, что скоро у нас появятся международные пользователи, и мы хотим добавить столбец country. Все наши существующие пользователи из США, поэтому мы можем использовать это значение по умолчанию.

ALTER TABLE users
ADD country TEXT default "United States";

 Наша таблица будет выглядеть так: 

id name age state email 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

Будьте осторожны при добавлении новых столбцов в таблицы.

Если в вашей таблице уже много строк - например, если у вас уже много пользователей или много хранимых данных, - добавление нового столбца может потребовать значительных ресурсов. Поэтому обращайтесь с этой операцией осторожно. 

 

Как переименовать столбец с помощью ALTER TABLE

Вы можете переименовать столбец с помощью приведенного ниже кода. Вы выбираете таблицу с помощью ALTER TABLE имя_таблицы, а затем указываете, какой столбец переименовать и во что переименовать, с помощью RENAME COLUMN old_name TO new_name

ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;

 Давайте посмотрим на ту же таблицу, которую мы использовали в предыдущем примере:

 

id name age state email 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

Чтобы избежать путаницы между столбцами id и id_number, давайте переименуем первый в user_id.

Сначала мы укажем  таблицу с помощью ALTER TABLE users, а затем объявим имя столбца, чтобы оно изменилось на то, что мы хотим изменить, с помощью RENAME COLUMN id TO user_id.

ALTER TABLE users
RENAME COLUMN id TO user_id;

После выполения запроса таблица будет выглядеть так: 

user_id name age state email 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

Будьте осторожны при переименовании столбца в таблице.

Когда вы переименовываете столбцы с помощью ALTER TABLE, вы рискуете нарушить зависимости базы данных.

Если вы используете инструмент рефакторинга базы данных для изменения имени столбца вместо использования ALTER TABLE, он будет управлять всеми зависимостями и обновлять их с новым именем столбца.

Если у вас небольшая база данных, возможно, вам не о чем беспокоиться, но об этом важно помнить.

 

  • share:
Комментарии 0

Оставить комментарий


Комментарии могут оставлять только зарегистрированные пользователи

shape shape