因为Oracle对于列的增删改操作格式略有不同,为了方便日后查看,特此记录。
1、增加列:
SQL> alter table t1 add y integer;
Table altered
Executed in 0.046 seconds
说明:增加列的格式为 alter table 表名 add 新增列名 数据类型;
2、删除列
SQL> alter table t1 drop column y;
Table altered
Executed in 0.015 seconds
说明:单独删除一列的格式为 alter table 表名 drop column 列名;
3、修改列
SQL>alter table t1 modify i number(10);
说明:修改列的格式为 alter table 表名 modify 列名 数据类型;
特别注意:如需更改列数据类型,转换前需要备份列数据后清除列数据,否则更改失败!
4、重命名列
SQL> alter table t1 rename column i to x;
Table altered
Executed in 0.062 seconds
说明:重命名列的格式为 alter table 表名 rename column 列名 to 新列名;、
5、删除多列
SQL> alter table t drop (a,b);
Table altered
Executed in 1.56 seconds
说明:同时删除多列的格式为 alter table 表名 drop (列名1,列名2,....列名N);
同时需要说明的是,同时删除多列不能把表中的所有列都删除,如果都删除表就没有任何意义。
6、更新主键
如果表之前有主键,需要删除
alter table 表名 drop constraint 主键名;
添加新的主键
alter table 表名 add constraint 主键名 primary key (表中的列)
注意:主键名自定义,可以不与列名相同。
最后,稍稍地鄙视一下oracle的开发人员,sql命令语句格式一点都不规范,过于随意!