oracle认证辅导:oracle语句速查(2)Oracle认证考试
文章作者 100test 发表时间 2009:11:11 16:39:20
来源 100Test.Com百考试题网
"gklt">
3修改表结构
修改表结构是对已经创建完成(实际是存放在数据库字典里)的表的结构进行修改。不同的Oracle版本允许对表的修改也不一样。新版的Oracle8i可以对表中的列进行删除。
3.1 修改表结构命令修改表结构的命令由ALTER TABLE来完成。该命令的参数较多,下面仅给出一些基本的部分。详细请参考《ORACLE8i SQL REFERENCE》 。
ALTER TABLE [user.] table
[ADD ({colum_element|table_constraint}
[,{column_element|table_constraint}]...)] [MODIFY(column_element[,column_element]...)] [DROP CONSTRAINT constraint]...
[PCTFREE integer][PCTUSED integer]
[INITRANS integer][MAXTRANS integer]
[STORAGE storage]
[BACKUP]
ALTER TABLE可以作的操作有:
l增加一个列(字段)宽度;
l减少一个列(字段)宽度(该列必须无数据);
l增加一个列(字段).
l修改列的定义;
l 或一个限制;(如数据类型,NOT NULL);仅当某列的值为空时才能修改其类型;
l去掉限制;
l修改存储分配;
l记录表已作过BACKUP;
l删除已存在的列(仅Oracle8i及以后版本);
l重新定位和组织表(仅Oracle8i及以后版本);
l 将表标识为不可用(仅Oracle8i及以后版本)。
3.2 修改表结构例子
例1:对已经存在的表增加一新的列:
SQL>.alter table dept add ( headcount number(3) ).
例2:对表的列修改其大小:
SQL>.alter table dept modify( Dname char(20) ).
如果被修改的列没有空(已有数据),则被提示:
ORA-01439: Column to be modified must be empty to change
datatype
ORA-01441: Column to be modified must be empty to decrease
column length