In relational databases, having another column which can be computed easily from an existing column is a waste of resources.
Starting from Oracle 11g, we have a feature called Virtual Columns. When queried, virtual columns appear to be normal table columns, but their values are derived rather than being stored on disc.
So, based on your comment,
I want to create the new column2 and insert values in it based on the
column1(already full with data)
what you may do is add a virtual column column2 like this,
ALTER TABLE yourtable ADD (
column2 NUMBER AS ( column1 - 5 )
);
You may not be able to modify the column2 directly and it won't contain any data. But, when queried, it will return the computed value.
select * from yourtable;
column1 column2
------- -------
10 5
20 15
Even after telling you this, if you still want to have a real column column2, you may do an update operation after adding the column using ALTER TABLE ADD COLUMN .. and running an update query as
update table1 set column2 = column1 -5 where ..
But this is going to expensive and not recommended for this use case.