刪除資料庫某個表中的一列
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 '預設值'