В этом учебном пособии вы узнаете, как использовать в Oracle/PLSQL оператор ALTER TABLE, чтобы добавить столбец, изменить столбец, удалить столбец, переименовать столбец или переименовать таблицу (с синтаксисом, примерами и практическими упражнениями).
Описание
Оператор Oracle/PLSQL ALTER TABLE используется для добавления, изменения или удаления столбца в таблице. Оператор Oracle/PLSQL ALTER TABLE также используется для переименования таблиц.
Добавить столбец в таблицу
Синтаксис
Синтаксис ALTER TABLE для добавления столбца в таблицу Oracle:
ADD column_name column-definition;
Пример
Рассмотрим на примере, как добавить столбец в таблицу Oracle с помощью оператора ALTER TABLE.
Например:
1 2 |
ALTER TABLE customers ADD customer_name varchar2(45); |
В этом примере оператор ALTER TABLE добавит столбец customer_name к таблице customers (клиенты).
Добавление нескольких столбцов в таблицу
Синтаксис
Синтаксис ALTER TABLE для добавления несколько столбцов в существующую таблицу Oracle:
ADD (column_1 column-definition,
column_2 column-definition,
...
column_n column_definition);
Пример
Рассмотрим пример, который показывает, как добавить несколько столбцов в таблицу Oracle с помощью оператора ALTER TABLE.
Например:
1 2 3 |
ALTER TABLE customers ADD (customer_name varchar2(45), city varchar2(40)); |
В этом примере ALTER TABLE добавит в таблицу customers два столбца, customer_name varchar2 (45) и city varchar2 (40).
Изменить столбец в таблице
Синтаксис
Синтаксис ALTER TABLE для изменения столбца в существующей таблице Oracle:
MODIFY column_name column_type;
Пример
Рассмотрим пример, который показывает, как изменить столбец в таблице Oracle с помощью оператора ALTER TABLE.
Например:
1 2 |
ALTER TABLE customers MODIFY customer_name varchar2(100) not null; |
В этом примере ALTER TABLE будет модифицировать столбец customer_name в тип данных VARCHAR2 (100) и указывает столбцу не принимать значения NULL.
Изменение нескольких столбцов в таблице
Синтаксис
Синтаксис ALTER TABLE для редактирования нескольких столбцов в существующей таблице Oracle:
MODIFY (column_1 column_type,
column_2 column_type,
...
column_n column_type);
Пример
Рассмотрим пример, который показывает, как изменить несколько столбцов в таблице Oracle с помощью оператора ALTER TABLE.
Например:
1 2 3 |
ALTER TABLE customers MODIFY (customer_name varchar2(100) not null, city varchar2(75)); |
В этом примере ALTER TABLE модифицирует столбцы customer_name и city.
Удаление столбца из таблицы
Синтаксис
Синтаксис ALTER TABLE для удаления столбца в существующей таблице Oracle:
DROP COLUMN column_name;
Пример
Рассмотрим пример, который показывает, как удалить столбец из таблицы Oracle с помощью оператора ALTER TABLE.
Например:
1 2 |
ALTER TABLE customers DROP COLUMN customer_name; |
В этом примере Oracle/PLSQL ALTER TABLE удалит столбец customer_name из таблицы customers.
Переименование столбца в таблице
Синтаксис
Начиная с Oracle 9i Release 2, вы можете переименовать столбец.
Синтаксис ALTER TABLE для переименования столбца в существующей таблице Oracle,:
RENAME COLUMN old_name to new_name;
Пример
Рассмотрим пример, который показывает, как переименовать столбец в таблице Oracle с помощью оператора ALTER TABLE.
Например:
1 2 |
ALTER TABLE customers RENAME COLUMN customer_name to cname; |
В этом примере Oracle/PLSQL ALTER TABLE переименует столбец customer_name в cname.
Переименовать таблицу
Синтаксис
Синтаксис ALTER TABLE для переименования таблицы Oracle:
RENAME TO new_table_name;
Пример
Рассмотрим пример, который показывает, как переименовать таблицу в Oracle с помощью оператора ALTER TABLE.
Например:
1 2 |
ALTER TABLE customers RENAME TO contacts; |
В этом примере Oracle/PLSQL ALTER TABLE переименует таблицу customers в contacts.
Практическое упражнение №1:
На основании таблицы departments ниже, переименовать таблицу departments в depts.
1 2 3 4 5 |
CREATE TABLE departments ( department_id number(10) not null, department_name varchar2(50) not null, CONSTRAINT departments_pk PRIMARY KEY (department_id) ); |
Решение для практического упражнения №1:
Следующий оператор Oracle/PLSQL ALTER TABLE переименует таблицу departments в depts:
1 2 |
ALTER TABLE departments RENAME TO depts; |
Практическое упражнение №2:
На основании таблицы employees ниже, добавьте столбец с наименованием bonus, и типом данных number (6).
1 2 3 4 5 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) ); |
Решение для практического упражнения №2:
Следующий оператор Oracle/PLSQL ALTER TABLE добавит столбец bonus к таблице employees:
1 2 |
ALTER TABLE employees ADD bonus number(6); |
Практическое упражнение №3:
На основании таблицы customers ниже, добавьте два столбца. Один столбец с названием contact_name и типом данных VARCHAR2 (50), второй столбец с названием last_contacted и типом данных DATE.
1 2 3 4 5 6 7 8 9 |
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) ); |
Решение для практического упражнения №3:
Следующий оператор Oracle/PLSQL ALTER TABLE добавит столбцы contact_name и last_contacted в таблицу customers:
1 2 3 |
ALTER TABLE customers ADD (contact_name varchar2(50), last_contacted date); |
Практическое упражнение №4:
На основании таблицы employees ниже, модифицируйте тип данных столбца employee_name в varchar2 (80).
1 2 3 4 5 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) ); |
Решение для практического упражнения №4:
Следующий оператор Oracle/PLSQL ALTER TABLE модифицирует тип данных для столбца employee_name в varchar2 (80):
1 2 |
ALTER TABLE employees MODIFY employee_name varchar2(80); |
Практическое упражнение №5:
На основании таблицы customers ниже, модифицируйте столбец customer_name, чтобы он не мог принимать значения NULL и изменить типа данных в столбце state в varchar2 (2).
1 2 3 4 5 6 7 8 9 |
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) ); |
Решение для практического упражнения №5:
Следующий оператор Oracle/PLSQL ALTER TABLE модифицирует столбцы customer_name и state в таблице customers:
1 2 3 |
ALTER TABLE customers MODIFY (customer_name varchar2(50) not null, state varchar2(2)); |
Практическое упражнение №6:
На основании таблицы employees ниже, удалить столбец salary.
1 2 3 4 5 6 7 |
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) ); |
Решение для практического упражнения №6:
Следующий оператор Oracle/PLSQL ALTER TABLE удалит столбец salary из таблицы employees:
1 2 |
ALTER TABLE employees DROP COLUMN salary; |
Практическое упражнение №7:
На основании таблицы departments ниже, переименовать столбец department_name в dept_name.
1 2 3 4 5 |
CREATE TABLE departments ( department_id number(10) not null, department_name varchar2(50) not null, CONSTRAINT departments_pk PRIMARY KEY (department_id) ); |
Решение для практического упражнения №7:
Следующий оператор Oracle/PLSQL ALTER TABLE переименует столбец department_name в dept_name в таблице departments:
1 2 |
ALTER TABLE departments RENAME COLUMN department_name to dept_name; |
Узнайте как использовать оператор ALTER TABLE в распространенных БД: