In Oracle PL/SQL, the ALTER TABLE statement is used to modify the structure of an existing table, and one of the common modifications is adding a new column to the table. Adding a column allows you to expand the information stored in the table and adapt to changing business requirements.


The syntax for adding a new column to an existing table is as follows:

ALTER TABLE table_name
ADD (column_name data_type [DEFAULT expr] [column_constraint]);

Let’s break down the components of this syntax:

table_name: The name of the table to which you want to add a new column.

column_name: The name of the new column you want to add.

data_type: The data type of the new column, specifying the kind of data it can store (e.g., VARCHAR2, NUMBER, DATE).

DEFAULT expr (optional): Specifies a default value for the new column. If a value is not provided for this column during an INSERT statement, the default value will be used.

column_constraint (optional): Specifies constraints on the new column, such as NOT NULL, UNIQUE, or CHECK constraints.


Here’s an example of using the ALTER TABLE ADD COLUMN statement:

Adding a new column named ’email’ to the ’employees’ table.

ALTER TABLE employees
ADD (email VARCHAR2(100));

In this example, a new column named ’email’ with a data type of VARCHAR2(100) is added to the ’employees’ table.

Adding multiple columns to a table.
Suppose you have a table named employees and you want to add two columns, phone_number and address:

ALTER TABLE employees
phone_number VARCHAR2(20),
address VARCHAR2(100)

In this example:

phone_number is the name of the first column to be added, and its data type is VARCHAR2(20).
address is the name of the second column to be added, and its data type is VARCHAR2(100).

Make sure to choose appropriate data types and sizes for your columns based on the data you intend to store.
After running this ALTER TABLE statement, the specified columns will be added to the employees table.

It’s important to note that when adding a column to a table that already contains data, the new column will initially have no value (NULL) for existing rows. If a default value is specified, it will be used for new rows or existing rows where the new column is not explicitly set.

Adding columns using the ALTER TABLE statement should be done carefully, especially in production environments, as it may impact existing applications and queries. It’s recommended to thoroughly test such modifications in a development or testing environment before applying them to the production database.