SQL: оператор ALTER TABLE

Оператор ALTER TABLE позволяет переминовывать существующую таблицу. Так же он может быть использован для добавления, модификации, или удаления столбцов существующей таблицы.

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

Простейщий синтаксис переименования таблицы:

ALTER TABLE table_name

 RENAME TO new_table_name;

Например:

ALTER TABLE suppliers

 RENAME TO vendors;

Переименуем таблицу suppliers в таблицу vendors.

Добавление столбца (столбцов) в таблицу

Синтаксис #1

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

ALTER TABLE table_name

 ADD column_name column-definition;

Например:

ALTER TABLE supplier

 ADD supplier_name  varchar2(50);

Добавим столбец supplier_name в таблицу supplier.

Синтаксис #2

Синтаксис оператора ALTER TABLE для добавления нескольких столбцов в существующую таблицу:

ALTER TABLE table_name
ADD ( column_1 column-definition,
  column_2 column-definition,
 
  column_n column_definition );

Например:

ALTER TABLE supplier
ADD ( supplier_name varchar2(50),
  city varchar2(45) );

Добавим два столбца (supplier_name and city) в таблицу supplier.

Модификация столбца(-ов) в таблице

Синтаксис #1

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

ALTER TABLE table_name

 MODIFY column_name column_type;

Например:

ALTER TABLE supplier

 MODIFY supplier_name   varchar2(100)     not null;

Изменим тип данных столбца supplier_name в varchar2(100) а также запретим запист null-значений.
Синтаксис #2

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

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

Например:

ALTER TABLE supplier
MODIFY ( supplier_name varchar2(100) not null,
city varchar2(75)   );

Изменим столбцыsupplier_name и city.

Удаление столбца(-ов) в таблице

Синтаксис #1

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

ALTER TABLE table_name

 DROP COLUMN column_name;

Например:

ALTER TABLE supplier

 DROP COLUMN supplier_name;

Удалим столбец supplier_name в таблице supplier.

Переименование столбца(-ов) в таблице(НОВОЕ в Oracle 9i Release 2)

Синтаксис #1

Начиная с Oracle 9i Release 2, вы можете переименовывать столбцы.

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

ALTER TABLE table_name

 RENAME COLUMN old_name to new_name;

Например:

ALTER TABLE supplier

 RENAME COLUMN supplier_name to sname;

Переименуем столбец supplier_name в sname.

Практическое задание #1:

Переименовать таблицу departments, созданную ниже, в depts.

CREATE TABLE departments
( department_id number(10) not null,
  department_name varchar2(50) not null,
  CONSTRAINT departments_pk PRIMARY KEY (department_id)
);

Решение:

ALTER TABLE departments

 RENAME TO depts;

Практическое задание #2:

Добавить в таблицу employees, созданную ниже, столбец salary с типом данных number(6).

CREATE TABLE employees
( employee_number number(10) not null,
  employee_name varchar2(50) not null,
  department_id number(10),
  CONSTRAINT employees_pk PRIMARY KEY (employee_number)
);

Решение:

ALTER TABLE employees

 ADD salary number(6);

Практическое задание #3:

Добавить в таблицу customers два столбца – contact_name varchar2(50) и last_contacted date.

CREATE TABLE customers
( customer_id number(10) not null,
  customer_name varchar2(50) not null,
  address varchar2(50),
  city varchar2(50),
  state varchar2(25),
  zip_code varchar2(10),
  CONSTRAINT customers_pk PRIMARY KEY (customer_id)
);

Решение:

ALTER TABLE customers
ADD ( contact_name varchar2(50),
  last_contacted date );

Практическое задание #4:

Поменять тип данных столбца employee_name на varchar2(75) в таблице employees.

CREATE TABLE employees
( employee_number number(10) not null,
  employee_name varchar2(50) not null,
  department_id number(10),
  CONSTRAINT employees_pk PRIMARY KEY (employee_number)
);

Решение:

ALTER TABLE employees

 MODIFY employee_name varchar2(75);

Практическое задание #5:

В таблице customers запретить запись NULL-значений в столбец customer_name и поменять тип данных поля state на varchar2(2).

CREATE TABLE customers
( customer_id number(10) not null,
  customer_name varchar2(50),  
  address varchar2(50),
  city varchar2(50),
  state varchar2(25),
  zip_code varchar2(10),
  CONSTRAINT customers_pk PRIMARY KEY (customer_id)
);

Решение:

ALTER TABLE customers
MODIFY ( customer_name varchar2(50) not null,
  state varchar2(2) );

Практическое задание #6:

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

CREATE TABLE employees
( employee_number number(10) not null,
  employee_name varchar2(50) not null,
  department_id number(10),
  salary number(6),
  CONSTRAINT employees_pk PRIMARY KEY (employee_number)
);

Решение:

ALTER TABLE employees

 DROP COLUMN salary;

Практическое задание #7:

В таблице departments переименовать столбец department_name в dept_name.

CREATE TABLE departments
( department_id number(10) not null,
  department_name varchar2(50) not null,
  CONSTRAINT departments_pk PRIMARY KEY (department_id)
);

Решение:

ALTER TABLE departments

 RENAME COLUMN department_name to dept_name;

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