oracle数据库常用SQL

删除数据库某个表中的一列

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 '默认值'