Oracle操作语句--增加/删除
Posted 兜里还剩五块出头
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle操作语句--增加/删除相关的知识,希望对你有一定的参考价值。
1.删除1980年雇员的雇员信息;
delete from myemp
where hiredate between to_date(\'1980-1-1\',\'yyyy-mm-dd\')
and to_date(\'1980-12-31\',\'yyyy-mm-dd\') ;
执行上述语句后其实还没有真正意义上的更新,必须执行下面的语句才会彻底删除,否则其他session会话查询的时候,1980年的员工信息还依然存在。但是当你退出之后Oracle会自动commit的。
COMMIT WORK;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2、事务操作命令
S1:SCOTT用户分别登录两个SQL PLUS窗口是session1和session2;
S2:窗口session1和session2分别查看myemp数据表信息;
S3:窗口session1,执行语句:
INSERT
INTO myemp(empno,ename,hiredate, job, sal)
VALUES(1234,\'李兴华\',to_date(\'1989-09-19\',\'yyyy-mm-dd\'),\'MANAGER\',3000);
UPDATE MYEMP
SET SAL=5000 WHERE EMPNO=1234;
SAVEPOINT SP_A;
SELECT count(*) FROM myemp;
结果:
切换窗口session2,执行语句:
SELECT count(*) FROM myemp;
结果:
S4:窗口session1,执行语句:
INSERT
INTO myemp(empno,ename,hiredate, job, sal)
VALUES(5678,\'董鸣楠\',to_date(\'2003-07-27\',\'yyyy-mm-dd\'), \'HR\',2000);
UPDATE myemp
SET job=\'CEO\' WHERE empno=5678;
SAVEPOINT SP_B;
SELECT count(*) FROM myemp;
结果:
切换窗口session2,执行语句:
SELECT count(*) FROM myemp;
结果:
S5:窗口session1,执行语句:
DELETE FROM myemp;
SELECT count(*) FROM myemp;
结果:
切换窗口session2,执行语句:
SELECT count(*) FROM myemp;
结果:
S6:窗口session1,执行语句:
S6:窗口session1,执行语句:
--使用回滚到节点sp_B
ROLLBACK TO SP_B;
SELECT count(*) FROM myemp;
ROLLBACK TO SP_A;
SELECT count(*) FROM myemp;
ROLLBACK;
SELECT count(*) FROM myemp
S7:窗口session1,执行语句:
INSERT
INTO myemp(empno,ename,hiredate, job, sal)
VALUES(5678,\'董鸣楠\',to_date(\'2003-07-27\',\'yyyy-mm-dd\'), \'HR\',2000);
UPDATE myemp
SET job=\'CEO\' WHERE empno=5678;
COMMIT;
SELECT count(*) FROM myemp;
结果:
切换窗口session2,执行语句:
SELECT count(*) FROM myemp;
结果:
---上述主要实验的目的是想让读者明白设置保存节点,与事件回滚的用法,还有就是使用删除语句和插入语句必须使用commit语句,不然只是视图显示出来你要的结果而已,其它session会话看不见操作,虽然退出Oracle后他会自动commit,但是保险起见还是commit,其他session在同一时间登录的才可以看到更新操作。
以上是关于Oracle操作语句--增加/删除的主要内容,如果未能解决你的问题,请参考以下文章