加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

oracle 之向表中快速插入数据

(2012-11-25 23:14:59)
标签:

新建表中快速插入数据

setunused

truncatetable

comment注释

分类: oracle

--1.使用子查询创建表举例(创建表和插入数据结合起来)


--a.快速将一张表中的数据导入新建的表中,非常有效
create table emp_test
as
select * from emp;
--b.也可选择表中的个字段的数据导入新建的表中,可以带where 条件
create table emp_test
as
select empno,ename,sal,job from emp where deptno=10

 

--2.使用 ALTER TABLE 语句追加, 修改, 或删除列的语法.


alter table emp_test add sex char(2)
alter table emp_test modify sex char(2) default '男'(可以修改列的数据类型, 尺寸, 和默认值)
alter table emp_test drop column sex

 

--3.SET UNUSED (使用 SET UNUSED 使一个或多个列被标记为不可用)

--原理:清楚掉字典信息(撤消存储空间),不可恢复

--说明:这种方法其实数据也可恢复,但必须有sys或者sysoper权限
用法:1)alter table users1 set unused (username,sex)--括号里面的参数可多个
      2)alter table users1 set unused column username--作用同上
      当我们再次查询时,表中的数据不能显示username字段了,相当于drop这个字段了,但实际上没有删除
      
      alter table users1 drop unused columns--将unused修饰的字段删除
     
应用的场合:
    set unused系统开销比较小,速度较快,所以可以先set unuased,然后在系统负载较小时,
再drop。如系统负载不大,也可以直接drop。
    如果你有这个需求,要删除某一个表格上的某些栏位,但是由於这个表格拥有非常大量的资料,如果你在尖峰时间直接
执行 ALTER TABLEABC DROP (COLUMN);可能会收到 ORA-01562 - failed to extend rollbacksegment number string,
这是因为在这个删除栏位的过程中你可能会消耗光整个RBS,造成这样的错误出现,
因此这样的做法并不是一个好方法,就算你拼命的加大RBS空间来应付这个问题,也不会是个好主意。

good idea 产生了.....
    使用set unused 可以比较好的解决上述问题
不要马上drop column,应该先setunused让column无法使用,避开系统尖峰时间再来处理删除栏位里的资料,要注意的
是一但你set unused column,这个栏位是无法再回复使用的。


--4.清空表(TRUNCATE TABLE 语句:删除表中所有的数据,释放表的存储空间)


   truncate table users1;
--说明:执行速率快,删除页面全部数据,但是不能回滚,表结构还在


--5.comment 注释(规范)


comment on table users is '这是一个用户表,字段有userid,username';--给表加注释
select * from user_tab_comments where table_name='users';--查询表注释

comment on column users.userno is '用户编号'
comment on column users.username is '用户姓名'
;--给列加注释
select * from user_col_comments where table_name='users' and column_name='userno';--查询列注释

--可以通过下列数据字典视图查看所添加的注释:
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有