ALTER TABLE SQL Server
В этом учебном пособии вы узнаете, как использовать оператор ALTER TABLE в SQL Server (Transact-SQL) для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы с синтаксисом и примерами.
Описание
Оператор ALTER TABLE SQL Server (Transact-SQL) используется для добавления, изменения или удаления столбцов в таблице.
Добавить столбец в таблицу.
Вы можете использовать оператор ALTER TABLE в SQL Server, чтобы добавить столбец в таблицу.
Синтаксис
Синтаксис добавления столбца в таблицу в SQL Server (Transact-SQL):
Пример
Рассмотрим пример, который показывает, как добавить столбец в таблицу SQL Server с помощью оператора ALTER TABLE.
Например:
Этот пример SQL Server ALTER TABLE добавит столбец в таблицу employees , с наименованием last_name .
Добавить несколько столбцов в таблицу
Вы можете использовать оператор ALTER TABLE в SQL Server для добавления нескольких столбцов в таблицу.
Синтаксис
Синтаксис добавления нескольких столбцов в существующую таблицу в SQL Server (Transact-SQL):
Пример
Рассмотрим пример, который показывает, как добавить несколько столбцов в таблицу в SQL Server с помощью оператора ALTER TABLE.
Например:
Этот пример SQL Server ALTER TABLE добавит в таблицу employees два столбца, поле last_name как VARCHAR (50) и поле first_name как VARCHAR (40).
Изменить столбец в таблице
Вы можете использовать оператор ALTER TABLE в SQL Server для изменения столбца в таблице.
Синтаксис
Синтаксис изменения столбца в существующей таблице в SQL Server (Transact-SQL):
Пример
Рассмотрим пример, который показывает, как изменить столбец в таблице SQL Server с помощью оператора ALTER TABLE.
Например:
Этот пример SQL Server ALTER TABLE изменит столбец с именем last_name как тип данных VARCHAR (75) и принудит столбец не допускать нулевые значения.
Удалить столбец из таблицы
Вы можете использовать оператор ALTER TABLE в SQL Server для удаления столбца из таблицы.
Синтаксис
Синтаксис удаления столбца в существующей таблице в SQL Server (Transact-SQL):
Пример
Рассмотрим пример, показывающий, как удалить столбец из таблицы на SQL Server с помощью оператора ALTER TABLE.
Например:
Этот пример SQL Server ALTER TABLE удалит столбец с именем last_name из таблицы, называемой employee .
Переименовать столбец в таблице
Вы не можете использовать оператор ALTER TABLE в SQL Server для переименования столбца в таблице. Тем не менее, вы можете использовать sp_rename , хотя Microsoft рекомендует удалять и воссоздавать таблицу, чтобы скрипты и хранимые процедуры не были нарушены.
Синтаксис
Синтаксис переименования столбца в существующей таблице в SQL Server (Transact-SQL):
Пример
Рассмотрим пример, который показывает, как переименовать столбец в таблице на SQL Server, используя sp_rename .
Например:
Alter Table в SQL — Как добавить столбец или переименовать столбец в SQL
Вы создали свою базу данных и свои таблицы, и после всей этой работы вы заметили, что вам нужно добавить или переименовать столбец. Что ж, вы можете использовать для этого оператор ALTER TABLE.
Просто имейте в виду, что при этом нужно быть очень осторожным. Если в вашей таблице много строк, это может вызвать проблемы с производительностью вашей базы данных.
Примечание. Если приведенный здесь синтаксис не работает, обратитесь к документации по своей СУБД. Большинство вещей работает одинаково, но есть некоторые различия для различных СУБД.
Как добавить новую колонку с помощью ALTER TABLE
Чтобы добавить новый столбец, вам сначала нужно выбрать таблицу с помощью ALTER TABLE имя_таблицы, а затем написать имя нового столбца и его тип данны вместе с операторомо ADD. В совокупности код выглядит так:
Например у нас есть база данных пользователей, как показано ниже:
| 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 |
Настал момент, когда нам нужно сохранить номера документов, удостоверяющих личность наших пользователей, поэтому нам нужно добавить для этого новый столбец.
Чтобы добавить новый столбец в нашу таблицу пользователей, нам нужно выбрать таблицу с ALTER TABLE users, а затем указать имя нового столбца и его тип данных с помощью оператора ADD id_number TEXT. Все вместе выглядит так:
Таблица с новым столбцом будет выглядеть следующим образом:
| 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 |
Вам нужно будет использовать оператор UPDATE, чтобы добавить недостающую информацию для уже существующих пользователей, как только она будет предоставлена.
Как создать новый столбец со значением по умолчанию вместо NULL
Вы также можете создать столбец со значением по умолчанию, используя ключевое слово default, за которым следует используемое значение. Тогда пользователи увидят это значение по умолчанию вместо того, чтобы пропущенные значения были заполнены NULL.
Предположим, что скоро у нас появятся международные пользователи, и мы хотим добавить столбец country. Все наши существующие пользователи из США, поэтому мы можем использовать это значение по умолчанию.
Наша таблица будет выглядеть так:
| 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 |
Будьте осторожны при добавлении новых столбцов в таблицы.
Если в вашей таблице уже много строк — например, если у вас уже много пользователей или много хранимых данных, — добавление нового столбца может потребовать значительных ресурсов. Поэтому обращайтесь с этой операцией осторожно.
Как переименовать столбец с помощью ALTER TABLE
Вы можете переименовать столбец с помощью приведенного ниже кода. Вы выбираете таблицу с помощью ALTER TABLE имя_таблицы, а затем указываете, какой столбец переименовать и во что переименовать, с помощью RENAME COLUMN old_name TO new_name.
Давайте посмотрим на ту же таблицу, которую мы использовали в предыдущем примере:
| 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 |
Чтобы избежать путаницы между столбцами id и id_number, давайте переименуем первый в user_id.
Сначала мы укажем таблицу с помощью ALTER TABLE users, а затем объявим имя столбца, чтобы оно изменилось на то, что мы хотим изменить, с помощью RENAME COLUMN id TO user_id.
После выполения запроса таблица будет выглядеть так:
| 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 |
Будьте осторожны при переименовании столбца в таблице.
Когда вы переименовываете столбцы с помощью ALTER TABLE, вы рискуете нарушить зависимости базы данных.
Если вы используете инструмент рефакторинга базы данных для изменения имени столбца вместо использования ALTER TABLE, он будет управлять всеми зависимостями и обновлять их с новым именем столбца.
Если у вас небольшая база данных, возможно, вам не о чем беспокоиться, но об этом важно помнить.
ALTER TABLE в SQL
Мы можем изменить структуру таблицы с помощью команды ALTER TABLE. Мы можем:
Добавить столбец в таблицу
Мы можем добавить столбцы в таблицу с помощью команды ALTER TABLE с оператором ADD. Например:
Здесь мы добавили столбец с именем phone в таблицу Customers.
Добавить несколько столбцов в таблицу
Мы также можем добавить сразу несколько столбцов в таблицу. Например:
Здесь мы добавили столбцы phone и age в таблицу Customers.
Переименовать столбец в таблице
Мы можем переименовать столбцы в таблице с помощью команды ALTER TABLE с оператором RENAME COLUMN. Например:
Здесь мы изменили имя столбца customer_id на c_id в таблице Customers.
Изменить столбец в таблице
Мы также можем изменить тип данных столбца с помощью команды ALTER TABLE с оператором MODIFY или ALTER COLUMN. Например:
How can I rename a single column in a table at select?
I have two tables with one identical column name, but different data. I want to join the tables, but access both columns (row[«price»], row[«other_price»]): How can I rename/alias one of them in the select statement? (I do not want to rename them in the DB)
8 Answers 8
us the AS keyword
If, like me, you are doing this for a column which then goes through COALESCE / array_to_json / ARRAY_AGG / row_to_json (PostgreSQL) and want to keep the capitals in the column name, double quote the column name, like so:
Without the quotes (and when using those functions), my column names in camelCase would lose the capital letters.