Oracle 学习笔记,批量插入,truncate,去掉碎片,事务

 

--一次性插入多条记录(批量插入)。  不用写values子句,用子查询代替values子句。(子查询的列要和插入的表的列保持对应)
insert into emp10 select * from emp where deptno=10;  --批量插入,如果插入海量数据效率低

海量插入数据:
1、数据泵(PLSQL程序)
   dbms_datapump(程序包)
2、SQL*Loader
3、外部表


delete和truncate的区别  (Oracle中truncate快,MySql中delete快。原因:Oracle有undo数据(还原数据)的功能)
1、delete逐条删除;truncate先摧毁表 再重建2
2、(*)delete是DML  truncate是DDL
        (可以回滚)    (不可以回滚)
3、delete不会释放空间 truncate会
4、delete会产生碎片 truncate不会
5、delete可以闪回(flashback)  truncate不可以  (flashback其实是一种恢复)


alter table 表名 move;  --去掉碎片  (数据的导入和导出也可以去掉表中的碎片 exp/imp)


set feedback off;  --关闭sql语句执行结果提示信息。
@D:\MyData.sql;    --执行外部sql脚本


Oracle中的事务
1、起始标志: 事务中的第一条DML语句(insert、delete、update、select)
2、结束标志:显式提交:commit    隐式提交: 正常退出或 DDL 或 DCL  (DDL语句不能回滚,因为本身就是提交)
            显式回滚:rollback   隐式回滚: 非正常退出 掉电  宕机


set transaction read only;  --设置事务隔离级别(read only是Oracle专有的隔离级别(只能进行查询操作))

savepoint a;   --事务保存点
rollback to savepoint a;  --回滚到事务指定的保存点

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值