1.修改表
1.1增加和删除列
1.增加列
alter table 表名 add 列名 列的属性类型
2.删除列
删除一列:alter table 表名 drop column 列名
删除多列:alter table 表名 drop (列名1,列名2···,列名n)
3.使用unused
对一个表删除大量列时,由于需要对每个列的记录进行处理,所以删除操作可能会执行很长时间,从而降低系统的响应率,这时,可以将要删除的列设置为unused状态,来代替对列的删除操作。
alter table 表名 set unused(列名)
如果需要删除标记为unused的列,可以使用alter table ··· drop unused column语句。
alter table 表名 drop unused column
1.2更新列
1.修改列名
alter table 表名 rename column 旧列名 to 新列名
2.修改列的数据类型
在执行更新列的数据类型操作时,需要注意一下两点:
① 一般情况下,只能将数据的长度由短向长改变,而不能由长向短改变
② 当表中没有数据时,可以将数据的长度由长向短改变,也可以把某种类型改变为另外的一种数据类型。
alter table 表名 modify 列名 新数据类型
3.修改数字列的精度
对数据类型为number的列,可以修改其精度,语法如下:
alter table 表名 modify 列名 number(4,3)
4.修改列的默认值
alter table 表名 modify(列名 default 默认值)
注:如果对某个列的默认值进行更新,更改后的默认值只对后面的insert操作起作用,而对于先前的数据不起作用。
5.删除某一列
alter table 表名 drop column列名
1.3重命名表
如果需要修改表的名称,可以使用alter table ··· rename语句
提示:用户只能够对自己所在模式的表进行重命名。
alter table 旧表名 rename to新表名
1.4改变表的存储表空间和存储参数
1.将表移动到另一个表空间
将表移动到另一个表空间中,可以使用alter table··· move语句。在将表移动到另一个表空间之前,首先查看数据字典user_tables,了解数据库中表空间信息。
Select tablespace_name,table_name from user_tables
alter table表名 move tablespace system
2.修改表的存储参数
在创建表之后,可以对表的存储参数pctfree和pctused进行修改
alter table 表名 pctfree 30 pctused 50
1.5删除表定义
drop table 表名
在删除一个表定义时,Oracle将执行如下一系列操作。
① 删除表中的所有记录
② 从数据字典中删除该表的定义
③ 删除与该表相关的所有索引和触发器
④ 回收为该表所分配的存储空间
⑤ 如果有视图或者PL/SQL进行依赖于该表,这些视图或者PL/SQL将被设置为不可用状态。
在删除表定义时,可以使用如下两个参数:
⑥ cascade constraint
当使用该可选参数时,drop table操作不仅删除该表,而且删除所有引用这个表的视图、约束、索引和触发器等。
⑦purge
使用该可选参数时,表示在删除表定义后,立即释放该表所占用的资源空间。
drop table 表名 purge