删除数据库某个表中的一列
alter table tablename drop clumn clumnname;
因为需求的变更,所以,有要对数据库中的一些字段进行修改.查了下网络上在资料,字段名称是无法修改的.唯一的办法,就是删了再添加.
如何修改oracle数据库中表的结构(字段的名称、长、类型、是否为空)?
改类型、长度、是否为空:
alter table mytable modify (mycol varchar2(20) not null);
要修改类型,字段必须是空的;
要修改长度,如果字段是空的,完全可以改,如果字段不空,则只能增加长度,不能减小;
要修改是否为空,字段必须符合constraint的要求 没有办法改字段名称
------------------------------------------------------------------------------------------------------------
关于列名,没有直接的方法改变。但是可以通过其他方法达到改变列名的目的。
例如:
表A结构如下:
ID(NUMBER) NAME(VARCHAR2(20)
------------------------------------
1 TOM
2 MIKE
3 JHON
列名NAME改变为NAME1
方法1.列复制法
1.增加一个与NAME相同结构的字段NAME1
Alter table A add(NAME1 varchar2(20));
2.将NAME中的数据复制到NAME1中
Update A Set NAME1=NAME;
3.删除NAME列
Alter table A drop column NAME;
4.修改完成
方法2.表复制法
1.将表A改名
Alter table A rename to A1
2.创建新表并复制数据
Create table A(ID,NAME1) as Select * from A1
3.删除表A1
4.修改完成
通过上面两种方法, 重新检索表A结果如下:
ID(NUMBER) NAME1(VARCHAR2(20)
------------------------------------
1 TOM
2 MIKE
3 JHON
------------------------------------------------------------------------------------------------------------
添加表字段: ALTER TABLE YourTable ADD NewColumn VARCHAR(20) NULL
--删除 alter table YourTable drop column ColumnName
--修改
alter table sales_provoder_info modify (buyer varchar() )
在Oracle中增加一列并指定默认值
alter table tblname add newcolumn varchar(40) default '默认值'