table_name表名 column_name列名 datatype数据类型
一、添加列
1、添加一个列
    
     alter table
    
    table_name
    
     add
    
    column_name datatype;
   
eg:
eg:alter table emp add esex varchar2(10);2、添加多个列
    
     alter table
    
    table_name
    
     add
    
    (column_name1 datatype1,column_name2 datatype2,…);
   
eg:
alter table emp add(esex varchar2(20),eage number(10));二、删除列
1、删除一个列
    
     alter table
    
    table_name
    
     drop column
    
    column_name;
   
eg:
alter table emp drop column esex;2、删除多个列(注意没有column关键字)
    
     alter table
    
    table_name
    
     drop
    
    (column column_name1,column_name2,…);
   
eg:
alter table emp drop (esex,eage);三、修改数据类型(要修改数据类型,要修改的列数据必须为空)
1、修改单列
    
     alter table
    
    table_name
    
     modify
    
    column_name datatype;
   
eg:
alter table emp modify eage int;2、修改多列
    
     alter table
    
    table_name
    
     modify
    
    (column_name1 datatype1,column_name2 datatype2,…);
   
eg:
alter table emp modify (eage number(10),esex number(10));扩展延伸:在eage有数据的情况下,修改eage数据类型为int,之前的数据仍然要,应该怎么做?(没有非空约束)
create table empe as select * from emp;
update emp set eage= null;
alter table emp modify eage int;
update emp a set a.eage=(select eage from empe b where a.empno=b.empno);首先将emp表复制,将emp表的eager列清空,然后更改数据类型,最后利用update语句将eage列数据从empe表更新回来。
四、修改表名
    
     alter table
    
    table_name_old
    
     rename to
    
    table_name_new;
   
eg:
alter table emp rename to empp;五、修改列名
    
     alter table
    
    table_name
    
     rename column
    
    column_name_old
    
     to
    
    column_name_new;
   
eg:
alter table emp rename column esex to eesex;六、标记为不可用列(在物理地址上没有被清除,表中该列不可见。但可以在表中添加列名相同的列)
    
     alter table
    
    table_name
    
     set unused column
    
    column_name;
   
eg:
alter table emp set unused column eage;
alter table emp add eage int;
    
     alter table
    
    table_name
    
     drop unused columns
    
    ;(删除不可用列)
   
七、将表改为只读或只写状态
1、只读(只读状态下不能对表进行插入和更新,但可以对查询表、修改表名、删除表)
    
     alter table
    
    table_name
    
     read only
    
    ;
   
eg:
alter table emp read only;2、只写
    
     alter table
    
    table_name
    
     read write
    
    ;
   
eg:
alter table emp read write; 
