SQL оператор ALTER TABLE

В этом учебном материале вы узнаете, как использовать SQL оператор ALTER TABLE для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы (с множеством ясных и кратких примеров).

Описание

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

Добавить столбец в таблицу

Синтаксис

Синтаксис SQL оператора ALTER TABLE для добавления столбца в таблицу.

ALTER TABLE table_name
ADD column_name column_definition;

Пример

Давайте посмотрим на SQL ALTER TABLE пример, который добавляет столбец.
Например.

Этот SQL пример ALTER TABLE добавит столбец с именем supplier_name в таблицу supplier.

Добавить несколько столбцов в таблицу

Синтаксис

Синтаксис SQL ALTER TABLE для добавления несколько столбцов в существующую таблицу.

ALTER TABLE table_name
ADD (column_1 column_definition,
column_2 column_definition,
...
column_n column_definition);

Пример

Давайте посмотрим на SQL ALTER TABLE пример, который добавляет более одного столбца.
Например.

Этот SQL ALTER TABLE пример добавит два столбца: supplier_name как поле char(50) и city как поле char(45) в таблицу supplier .

Изменить столбец в таблице

Синтаксис

Синтаксис SQL ALTER TABLE для изменения столбца в существующей таблице.

Для Oracle, MySQL, MariaDB.

ALTER TABLE table_name
MODIFY column_name column_type;

Для SQL Server.

ALTER TABLE table_name
ALTER COLUMN column_name column_type;

Для PostgreSQL.

ALTER TABLE table_name
ALTER COLUMN column_name TYPE column_definition;

Пример

Давайте посмотрим, как изменить столбец с именем supplier_name, используя команду ALTER TABLE. Обратите внимание, что в большинстве баз данных Синтаксис немного отличается.
Для Oracle.

Для MySQL и MariaDB.

Для SQL Server.

Для PostgreSQL.

Изменить несколько столбцов в таблице

Синтаксис

Синтаксис SQL ALTER TABLE для изменения нескольких столбцов в существующей таблице.
Для Oracle.

ALTER TABLE table_name
MODIFY (column_1 column_type,
column_2 column_type,
...
column_n column_type);

Для MySQL и MariaDB.

ALTER TABLE table_name
MODIFY column_1 column_definition
[ FIRST | AFTER column_name ],
MODIFY column_2 column_definition
[ FIRST | AFTER column_name ],
...
;

Для PostgreSQL.

ALTER TABLE table_name
ALTER COLUMN column_name TYPE column_definition,
ALTER COLUMN column_name TYPE column_definition,
...
;

Пример

Давайте рассмотрим пример, который использует ALTER TABLE для изменения более одного столбца. В этом примере мы изменим два столбца с именами supplier_name и city.

Для Oracle.

Для MySQL и MariaDB.

Для PostgreSQL.

Удалить столбец в таблиц

Синтаксис

Синтаксис ALTER TABLE для удаления столбца в существующей таблице.

ALTER TABLE table_name
DROP COLUMN column_name;

Пример

Давайте посмотрим на пример, который удаляет столбец из таблицы.
Например.

Этот SQL пример ALTER TABLE удалит столбец supplier_name из таблицы supplier.

Переименовать столбец в таблице

Синтаксис

Синтаксис SQL ALTER TABLE для переименования столбца в существующей таблице.

Для Oracle и PostgreSQL.

ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;

Для SQL Server (с использованием хранимой процедуры sp_rename).

sp_rename 'table_name.old_column', 'new_name', 'COLUMN';

Для MySQL и MariaDB.

ALTER TABLE table_name
CHANGE COLUMN old_name TO new_name;

Пример

Давайте рассмотрим пример, который переименовывает столбец в таблице supplier из supplier_name в sname.

Для Oracle (9i Rel2 и выше) и PostgreSQL.

Для SQL Server (с использованием хранимой процедуры sp_rename).

Для MySQL и MariaDB.

В MySQL и MariaDB вы должны указать тип данных столбца при его переименовании.

Переименовать таблицу

Синтаксис

Синтаксис SQL ALTER TABLE для переименования таблицы.

Для Oracle, MySQL, MariaDB, PostgreSQL и SQLite.

ALTER TABLE table_name
RENAME TO new_table_name;

Для SQL Server (с использованием хранимой процедуры sp_rename).

sp_rename 'table_name', 'new_table_name';

Пример

Давайте рассмотрим пример, который переименовывает таблицу supplier в новое имя vendor.
Для Oracle, MySQL, MariaDB, PostgreSQL и SQLite.

Для SQL Server (с использованием хранимой процедуры sp_rename).

Практическое упражнение № 1

На основании приведенной ниже таблицы departments переименуйте таблицу departments в depts.

Решение для упражнения № 1

Следующий SQL оператор ALTER TABLE переименует таблицу departments в depts.

Практическое упражнение № 2

На основе приведенной ниже таблицы employees добавьте столбец с именем salary, который имеет тип данных int.

Решение для упражнения № 2

Следующий SQL оператор ALTER TABLE добавит столбец salary в таблицу employees.

Практическое упражнение № 3

На основе приведенной ниже таблицы customers добавьте два столбца - один столбец с именем contact_name, который является типом данных char(50), и один столбец с именем last_contacted, у которого тип данных date.

Решение для упражнения № 3

Следующий SQL оператор ALTER TABLE добавит столбцы contact_name и last_contacted в таблицу customers.

Практическое упражнение № 4

На основании приведенной ниже таблицы employees измените столбец employee_name на тип данных char(75).

Решение для упражнения № 4

Следующий SQL оператор ALTER TABLE изменит тип данных для столбца employee_name на char(75).

Практическое упражнение № 5

На основе приведенной ниже таблицы customer измените столбец customer_name, чтобы он не допускал значений NULL, и измените столбец state на тип данных char(2).

Решение для упражнения № 5

Следующий SQL оператор ALTER TABLE изменит столбцы customer_name и state соответственно в таблице customers.

Практическое упражнение № 6

На основе приведенной ниже таблицы employees удалите столбец salary.

Решение для упражнения № 6

Следующий SQL оператор ALTER TABLE удалит столбец salary из таблицы employees.

Практическое упражнение № 7

На основании приведенной ниже таблицы departments переименуйте столбец department_name в имя_депта.

Решение для упражнения №

Следующий SQL оператор ALTER TABLE переименует столбец department_name в dept_name в таблице departments.

Узнайте как использовать оператор ALTER TABLE в распространенных БД: