ALTER TABLE: команда изменения структуры таблиц в Oracle

ALTER TABLE: команда изменения структуры таблиц в Oracle

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

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

 

Теория и практика

Существует несколько команд для изменения структуры таблицы, добавления, удаления или изменения типа данных колонки таблицы.

Все эти команды объединяет то, что они начинаются с ключевой команды ALTER TABLE.

 

Добавление колонки

Добавляем новую колонку к нашей таблице.

Синтаксис:

ALTER TABLE TABLE_NAME ADD (column_NAME column_type);

TABLE_NAME – наименование таблицы.

Column_NAME – наименование колонки.

Column_type – тип данных колонки (VARCHAR (n) или NUMBER или DATE).

Примеры:

Пусть у нас есть таблица GOODS, необходимо добавить колонку itemprice типа NUMBER, цена изделия.

ALTER TABLE GOODS ADD (itemprice NUMBER);

Пусть у нас есть таблица MANS, необходимо добавить колонку DATEreg типа DATE, дата регистрации, и колонку patronymic – отчество VARCHAR2 (50).

ALTER TABLE MANS ADD (DATEreg DATE);

ALTER TABLE MANS ADD (patronymic VARCHAR2 (50));

 

Удаление колонки

Также мы можем удалить колонку из заданной таблицы с помощью специальной SQL-команды DROP COLUMN.

Синтаксис:

ALTER TABLE TABLE_NAME DROP COLUMN column_NAME;

Примеры:

Пусть у нас есть таблица GOODS, необходимо удалить колонку COLOR.

ALTER TABLE GOODS DROP COLUMN COLOR;

 Пусть у нас есть таблица MANS, необходимо удалить колонку YEAROLD.

ALTER TABLE MANS DROP COLUMN YEAROLD;

Меняем тип данных для колонки таблицы.

Синтаксис изменения типа колонки:

ALTER TABLE TABLE_NAME MODIFY (column_NAME DATA_type);

Сolumn_NAME – наименование колонки.

Data_type – тип данных колонки (VARCHAR (n) или NUMBER или DATE).

Примеры:

– заменить в таблице MANS тип поля NAME на VARCHAR2 (90);

ALTER TABLE MANS MODIFY (NAME VARCHAR2 (90));

– заменить в таблице GOODS тип поля INSERT_DATE на DATE;

ALTER TABLE GOODS MODIFY (INSERT_DATE DATE);

 

Удаление таблицы из базы данных Oracle

Синтаксис команды SQL для удаления таблицы:

DROP TABLE TABLE_NAME;

Здесь TABLE_NAME – наименование таблицы.

Примеры:

– удалить таблицу DOC;

DROP TABLE doc;

– удалить таблицу ITEMS;

DROP TABLE ITEMS;

– удалить таблицу BILLING_PERIOD со связанными данными в таблице PERIODS.

DROP TABLE BILLING_PERIODS CASCADE;

 

Важные замечания

  1. При выполнении действий по изменению структуры таблицы следует быть особенно осторожным, следует тщательно взвешивать свои действия: восстановление таблицы в прежнем виде может быть затруднительно или невозможно.
  2. Если вы используете команды изменения типов данных и встречаетесь с ошибкой ORA-01439, модифицируемый столбец при смене типа данных должен быть пуст. Сохраните данные в столбце и используйте специальные преобразования, о которых будет рассказано в следующих шагах.
  3. В некоторых случаях удаление таблицы или колонки таблицы будет запрещено, поскольку могут быть еще таблицы со связанными данными. Требуется сначала удалить данные в связанных таблицах, а уже затем удалять таблицу либо колонку. Или же воспользоваться специальной командой DROP CASCADE.

 

Возможные вопросы

Можно ли переименовать таблицу?

Да, вполне, и для этого есть две команды:

ALTER TABLE TABLE_NAME RENAME TO new_TABLE_NAME;

 или же

RENAME <old_TABLE> TO <new_TABLE>

Универсальный же синтаксис предполагает использование ALTER TABLE.

Примеры:

Переименуем таблицу с названием STAFF в EMP:

ALTER TABLE STAFF RENAME TO emp;

Переименуем таблицу с названием TRADES в TRADE:

ALTER TABLE trades RENAME TO trade;

Можно ли переименовать столбец в таблице?

Да, синтаксис команды:

ALTER TABLE TABLE_NAME RENAME COLUMN old_column_NAME to new_column_NAME;

Пример:

Переименовать колонку с наименованием NAME в таблице STAFF в колонку LASTNAME:

ALTER TABLE STAFF RENAME COLUMN NAME TO LASTNAME;

Вас заинтересует / Intresting for you:

Oracle alerts: генерируемые се...
Oracle alerts: генерируемые се... 7216 просмотров Алексей Вятский Tue, 21 Nov 2017, 13:18:05
Создание таблиц  в базе данных...
Создание таблиц в базе данных... 16372 просмотров Administrator SU Mon, 28 Oct 2019, 08:20:14
Oracle Personal Edition
Oracle Personal Edition 5963 просмотров Надин Tue, 21 Nov 2017, 13:32:12
Установка Oracle 11g на Linux
Установка Oracle 11g на Linux 22902 просмотров Илья Дергунов Tue, 21 Nov 2017, 13:18:05
Войдите чтобы комментировать

ildergun аватар
ildergun ответил в теме #9738 3 года 6 мес. назад
Большое спасибо. Толково объяснили как работает SQL команда Alter Table