修改表結構 刪除列

2021-04-21 12:04:47 字數 2037 閱讀 3457

oracle中2種刪除列的方法

alter table qq drop column time

alter table qq set unused ("time") cascade constraints;(注意time為欄位名,要大寫)

第乙個命令直接刪除乙個列,適合應付比較小的表,

第二個命令將乙個列標識為unused

然後在系統負載比較輕的時候使用

alter table drop unused columns

刪除該列占用的儲存空間。

可以使用引數指定一次刪除多少行

適合負載比較重,或者表比較大的情況

修改表結構的命令由alter table來完成。該命令的引數較多,下面僅給出一些基本的部分。詳細請參考《oracle8i sql reference》 。

alter   table   [user.]   table

[add   (

[,]...)]

[modify(column_element[,column_element]...)]

[drop   constraint   constraint]...

[pctfree   integer][pctused   integer]

[initrans   integer][maxtrans   integer]

[storage   storage]

[backup]

alter table 可以作的操作有:

增加乙個列(字段)寬度;

減少乙個列(字段)寬度(該列必須無資料);

增加乙個列(字段);

修改列的定義 ;

或乙個限制;(如資料型別,not null);僅當某列的值為空時才能修改其型別;

去掉限制;

修改儲存分配;

記錄表已作過backup;

刪除已存在的列(僅oracle8i及以後版本);

重新定位和組織表(僅oracle8i及以後版本);

將表標識為不可用(僅oracle8i及以後版本)。

例1:對已經存在的表增加一新的列:

sql>alter   table   dept   add   ( headcount   number(3) );

例2:對錶的列修改其大小:

sql>alter   table   dept   modify( dname   char(20) );

例3:複製乙個表:

create  table  hold_tank  as  select  tank_no, chief_caretaker_name from tank;

例4:參照某個已存在的表建立乙個表結構(不需要資料)

create table emp2 as select * from emp where rownum<1;

例5:修改已存在表儲存引數:

alter  table emp2  storage( next 256k pctincrease 0 );

例6:刪除表中的列:

這是oracle8i的新功能,它的基本語法為:

alter table . . .  . . . drop column [ cascade constraints ];

如:alter  table emp   drop column comm ;

例7:重新定位和組織表:

這是oracle8i的新功能,可以實現:

將未分割槽的 表從乙個表空間移到另乙個表空間;

重新組織乙個未分割槽表的儲存。

它的基本語法為:

alter table . . .  . . . move tablespace ;

如:alter  table emp   move  tablespace  users;

例8:將表標識為不可用:

這是oracle8i的新功能,可以實現對空間的收回等。

基本語法為:

alter table . . .  . . . set  unused column;

如:alter  table emp   set  unused column xyz;

oracle修改表增加列刪除列修改列

tag oracle修改表 sql增加列 sql刪除列 sql修改列 1.增加列 alter table table name add column datatype default expr column datatype.例如 sql alter table emp01 add eno numb...

oracle修改表增加列刪除列修改列

oracle修改表 sql增加列 sql刪除列 sql修改列 1.增加列 alter table table name add column datatype default expr column datatype.例如 sql alter table emp01 add eno number 4...

Mysql修改列,刪除列

重新命名表 rename table t softwareport to software port 建立外來鍵 alter table software port add constraint fk software port softwareprocessid foreign key softw...