With the ALTER TABLE statement you can rename table, rename table column, add columns to the column, modify existing column, drop column from a table or move the table. With an example the all scenarios are demonstrated.
I work with following table,
SQL> create table test (a number);
Table created.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
A NUMBER
A)Rename a Table
----------------------
The syntax is,
ALTER TABLE [table name] RENAME TO [new table name];
To rename test to test2 use,
SQL> ALTER TABLE TEST RENAME TO TEST2;
Table altered.
We can also use only RENAME like,
SQL> RENAME TEST2 TO TEST;
Table renamed.
B)Rename Table Column
------------------------
Oracle Database lets you rename existing columns in a table. Use the RENAME COLUMN clause of the ALTER TABLE statement to rename a column.
If you want to rename the column A of Test table to first_col then use,
SQL> ALTER TABLE TEST RENAME COLUMN A to FIRST_COL;
Table altered.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
FIRST_COL NUMBER
C)Add Table Column
-----------------------------
To add a column to an existing table, use the ALTER TABLE...ADD statement. If you want to add second_col to table Test then use,
SQL> ALTER TABLE TEST ADD SECOND_COL NUMBER;
Table altered.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
FIRST_COL NUMBER
SECOND_COL NUMBER
D)Modify Existing Table Column
--------------------------------------
To modify a column use the ALTER TABLE...MODIFY statement. You can modify column datatype, default value, column constraint, and column encryption.
If I want to change data type to varchhar2 and column contrainst of column SECOND_COL to NOT NULL of table test then use,
SQL> ALTER TABLE TEST MODIFY SECOND_COL VARCHAR2(10) NOT NULL;
Table altered.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
FIRST_COL NUMBER
SECOND_COL NOT NULL VARCHAR2(10)
Remember You can increase the length of an existing column, or decrease it, if all existing data satisfies the new length.
E)Drop Table Columns
----------------------------
To drop a column from a table use ALTER TABLE...DROP COLUMN statement.
To drop the first_col of test table use,
SQL> ALTER TABLE TEST DROP COLUMN FIRST_COL;
Table altered.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
SECOND_COL NOT NULL VARCHAR2(10)
Remember you cannot drop all columns from a table, nor can you drop columns from a table owned by SYS.
F)Marking Columns Unused
--------------------------------
If you see that the table is very large and dropping a table will take much more time then you can mark the column unused instead of dropping it using the ALTER TABLE...SET UNUSED statement.
This statement marks one or more columns as unused, but does not actually remove the target column data or restore the disk space occupied by these columns.
However, a column that is marked as unused is not displayed in queries or data dictionary views, and its name is removed so that a new column can reuse that name. All constraints, indexes, and statistics defined on the column are also removed.
1)Add new column.
SQL> ALTER TABLE TEST ADD FIRST_COL NUMBER;
Table altered.
2)Describe the table.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
SECOND_COL NOT NULL VARCHAR2(10)
FIRST_COL NUMBER
3)Mark the first_col unused.
SQL> ALTER TABLE test SET UNUSED (first_col);
Table altered.
4)Describe the table.
SQL> desc test;
Name Null? Type
----------------------------------------- -------- ----------------------------
SECOND_COL NOT NULL VARCHAR2(10)
To remove unused columns use ALTER TABLE...DROP UNUSED COLUMNS statement. If I want to drop unused column then first see in which table there remain unused columns. To see it issue,
SQL> SELECT * FROM USER_UNUSED_COL_TABS;
TABLE_NAME COUNT
------------------------------ ----------
TEST 1
Now drop it by,
SQL> ALTER TABLE TEST DROP UNUSED COLUMNS;
Table altered.
Now check for unused columns by,
SQL> SELECT * FROM USER_UNUSED_COL_TABS;
no rows selected
It is very good to remember that the clause 'COLUMN' is used only for dropping a column and for rename a column. For modify a column or for adding a column 'COLUMN' clause is not present.
Related Documents
http://arjudba.blogspot.com/2008/09/how-to-disable-and-enable-all.html
http://arjudba.blogspot.com/2008/05/create-user-in-oracle.html
http://arjudba.blogspot.com/2008/06/create-temporary-table-in-oracle.html
Tuesday, June 10, 2008
Subscribe to:
Post Comments (Atom)
Tag Cloud
10.2g
10g
11g
11gR2
Abasa
About Oracle
Administration
Adsense
Alerts
Archival
ASM
ASP.Net
Audit
Audit Vault
Backup
Bangladesh
Block Corruption
Blogger
Browser
Bug
Business
Clone
Clusterware
Comments
Concepts
Connection
Controlfiles
Crime
CSS
Data Block
Data Dictionary
Data Guard
Data Mining
Data Pump
Data Type
Database Administration
Database Vault
DBConsole
Developer
Economics
EM
Excel
Exercise
Explain plan
Export
External Table
Facebook
Firefox
Firmware
Flashback
Forum
Functions
Games
Globalization Support
Grid Control
Hardware
History
HTML
IE
Import
Indexes
initializaion parameter
initialization parameter
Installation
Internals
Internet
Interview
isql*plus
Java
JavaScript
Job
Joins
Joke
Limitation
Linux
Listener
Logminer
Magento
Mail
Materialized View
Medical
Memory
Mobile
Money
Multimedia
MySQL
Net Services
Network
OCP
Operators
Oracle
Oracle Concepts
Oracle Recovery
OS
Others
OUI
Package
Packages
Parameters
Partitioning
Patchset
Performance
Perl
Pfile
Photos
PHP
PL/SQL
Profile
Pseudocolumns
Puzzle
Quiz
Quota
RAC
RAC Installation
Recovery
Recovery Problems
Redo Log
Reports
RMAN
Scripts
Security
SEO
Server Administration
SGA
Shell Script
Smarty
Social Marketing
Solaris
Spfile
SQL
SQL Tuning
SQL*Loader
Sql*Plus
Startup Problem
Streams
SwingBench
System Analysis
Tablespaces
Technology
Temp
TNS Error
Tools
Troubleshooting
Tuning
Undo
UNIX
Upgradation
Utilities
Version
Views
Vmware
Windows
Wordpress
XML
2 comments:
Thanks for showing all in a single post.
THANKS!!
Post a Comment