zoukankan      html  css  js  c++  java
  • 更新及事务处理

    范例1复制emp表 —— 新的表名称为myemp

    CREATE TABLE myemp AS SELECT * FROM emp ;

    范例2查看c##scott用户的全部表

    SELECT * FROM tab ;

     

    范例3查询myemp表中是否存在数据

    SELECT * FROM myemp ;

     

    范例4myemp数据表之中增加一条新的数据

    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表中是否存在编号为66126616的信息

    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 ;

     

    范例10SMITH(雇员编号为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查询更新之后的73697839的雇员完整信息

    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删除雇员编号为736975667788的雇员信息

    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第一个SESSIONc##scott/tiger连接)执行以下操作。

    SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ;

    范例40第二个SESSIONc##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第一个SESSIONc##scott/tiger连接)执行以下操作。

    SELECT * FROM myemp WHERE deptno=10 FOR UPDATE ;

     

    范例46第二个SESSIONc##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' ;

  • 相关阅读:
    2017-2018-2 20155206 《网络对抗技术》 实验六:信息搜集与漏洞扫描
    20155206 Exp5 MSF基础应用
    20155206 实验4 恶意代码分析
    20155206《网络攻防》第三次实验_免杀及其原理
    20155206 Exp2 后门原理与实践
    20155206赵飞 Exp1PC平台逆向破解及Bof基础实践
    J-19 集合对象
    J-18 集合对象
    J-17 集合对象
    J-16 集合对象
  • 原文地址:https://www.cnblogs.com/doudouxiaoye/p/5803744.html
Copyright © 2011-2022 走看看