更新及事务处理
范例1:复制emp表 —— 新的表名称为myemp
| CREATE TABLE myemp AS SELECT * FROM emp ; | 
范例2:查看c##scott用户的全部表
| SELECT * FROM tab ; | 
范例3:查询myemp表中是否存在数据
| SELECT * FROM myemp ; | 
范例4:向myemp数据表之中增加一条新的数据
| INSERT INTO myemp(empno,job,hiredate,ename,mgr,sal,comm,deptno) VALUES (8888,'CLERK',SYSDATE,'李兴华',7369,800,100,20); | 
| INSERT INTO myemp VALUES (8899,'魔乐科技','MANAGER',7369,TO_DATE('1981-09-19','yyyy-mm-dd'),1000,100,20); | 
范例5:查询myemp表中的全部记录
| SELECT * FROM myemp ; | 
范例6:增加一个没有领导、没有部门、没有奖金的新雇员
| INSERT INTO myemp(empno,ename,job,hiredate,sal) VALUES (6612,'李楠','CLERK',TO_DATE('1989-09-19','yyyy-mm-dd'),600); | 
| INSERT INTO myemp VALUES (6616,'李楠','CLERK',null,TO_DATE('1989-09-19','yyyy-mm-dd'),600,null,null); | 
范例7:查询myemp表中是否存在编号为6612和6616的信息
| SELECT * FROM myemp WHERE empno IN(6612,6616) ; | 
范例8:通过子查询增加myemp表数据
| INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,deptno) SELECT * FROM emp WHERE deptno=20 ; | 
| INSERT INTO myemp SELECT * FROM emp WHERE deptno=10 ; | 
范例9:查询myemp表中的数据
| SELECT * FROM myemp ; | 
范例10:将SMITH(雇员编号为7369)的工资修改为3000元,并且每个月有500元的奖金
| UPDATE myemp SET sal=3000,comm=500 WHERE empno=7369 ; | 
范例11:查询SMITH的完整信息
| SELECT * FROM myemp WHERE empno=7369 ; | 
范例12:将工资低于公司平均薪金的雇员的基本工资上涨20%
| UPDATE myemp SET sal=sal*1.2 WHERE sal<( SELECT AVG(sal) FROM myemp) ; | 
范例13:一次性上涨公司全部雇员的基本工资,每个雇员的基本工资上涨10%
| UPDATE myemp SET sal=sal*1.1 ; | 
范例14:将雇员7369的职位、基本工资、雇佣日期更新为与7839相同的信息
| UPDATE myemp SET(job,sal,hiredate)=( SELECT job,sal,hiredate FROM myemp WHERE empno=7839) WHERE empno=7369 ; | 
范例15:查询更新之后的7369和7839的雇员完整信息
| SELECT * FROM myemp WHERE empno IN (7369,7839) ; | 
范例16:删除雇员编号是7566的雇员信息
| DELETE FROM myemp WHERE empno=7566 ; | 
范例17:验证7566雇员的信息是否还存在
| SELECT * FROM myemp WHERE empno=7566 ; | 
范例18:删除30部门内的所有雇员
| DELETE FROM myemp WHERE deptno=30 ; | 
范例19:查询30部门是否还存在雇员
| SELECT * FROM myemp WHERE deptno=30 ; | 
范例20:删除雇员编号为7369、7566、7788的雇员信息
| DELETE FROM myemp WHERE empno IN (7369,7566,7788) ; | 
范例21:删除所有在1987年雇佣的雇员
| DELETE FROM myemp WHERE TO_CHAR(hiredate,'yyyy')='1987' ; | 
范例22:删除公司工资最高的雇员
| DELETE FROM myemp WHERE sal=( SELECT MAX(sal) FROM myemp) ; | 
范例23:查询myemp表中的全部数据
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例24:第一个sqlplus窗口执行以下的数据库更新操作
| DELETE FROM myemp WHERE MONTHS_BETWEEN(sysdate,hiredate)/12>32 ; | 
范例25:第一个sqlplus窗口执行以下的数据库查询操作
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例26:第二个sqlplus窗口执行以下的数据库查询操作
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例27:在第一个sqlplus窗口中使用ROLLBACK回滚事务
| ROLLBACK ; | 
范例28:当事务回滚完成之后,再次查询myemp表中的相关数据
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例29:删除myemp表中的数据同时提交事务
| DELETE FROM myemp WHERE MONTHS_BETWEEN(sysdate,hiredate)/12>32 ; | 
| COMMIT ; | 
范例30:通过第二个sqlplus窗口查看删除后的myemp表内容
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例32:查询现在myemp表中的数据
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例33:回滚到保存点
| ROLLBACK TO sp_b ; | 
范例34:查看回滚到sp_b存储点之后的数据表内容
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例35:回滚到保存点
| ROLLBACK TO sp_a ; | 
范例36:查看回滚到sp_b存储点之后的数据表内容
| SELECT empno,ename,hiredate,job,sal FROM myemp ; | 
范例37:将事务设置成自动提交
| SET AUTOCOMMIT ON ; | 
范例38:插入新的记录
| INSERT INTO myemp(empno,ename,hiredate,job,sal) VALUES (8888,'王月清',TO_DATE('2003-09-27','yyyy-mm-dd'),'总裁',8000) ; | 
范例39:第一个SESSION(c##scott/tiger连接)执行以下操作。
| SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; | 
范例40:第二个SESSION(c##scott/tiger连接)执行同样的操作。
| SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; | 
范例41:第一个session更新雇员编号是7369雇员的工资
| UPDATE myemp SET sal=5600 WHERE empno=7369 ; | 
范例42:第二个session更新雇员编号是7369雇员工作
| UPDATE myemp SET job='MANAGER' WHERE empno=7369 ; | 
范例43:在第一个SESSION上针对于emp表使用共享锁
| LOCK TABLE myemp IN SHARE MODE NOWAIT ; | 
范例44:第二个SESSION删除emp表全部数据
| DELETE FROM myemp ; | 
范例45:第一个SESSION(c##scott/tiger连接)执行以下操作。
| SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; | 
范例46:第二个SESSION(c##scott/tiger连接)执行同样的操作。
| SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ; | 
范例47:查看数据库中的锁定情况
| SELECT session_id,oracle_username,process from v$locked_object ; | 
范例48:查询v$session数据字典
| SELECT sid,serial#,username,lockwait,status FROM v$session where sid IN (125,241) ; | 
范例49:解除死锁
| ALTER SYSTEM KILL SESSION '125,711' ; | 
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号