oracle数据库的数据操作和事务

CREATE TABLE myemp as SELECT * FROM EMP;
SELECT * FROM myemp;
数据的增加操作
1.批量插入数据
INSERT INTO 表名称(列1,列2)子查询
    INSERT INTO MYEMP SELECT * FROM MYEMP WHERE DEPTNO=20;
INSERT INTO myemp VALUES(6666,'张三','CLERK','7369',SYSDATE,1800,1000,NULL);
数据的更新操作
1.用户指定的更新内容
    update 表名称 set 子段=值[,字段=值] [where 更新条件]
    UPDATE myemp set sal='3000',comm='500' WHERE EMPNO=7369;
    commit;
2.基于子查询的更新
    update 表名称 set (字段,字段)=(select 字段,字段 from table where 查询条件)
    更新员工编号为7369的job,sal,HIREDATE为员工编号是7839的信息
    UPDATE MYEMP SET(job,sal,HIREDATE)=(SELECT job,sal,HIREDATE FROM
数据删除操作
    delete from 表名称 [where 删除条件]
    DELETE FROM MYEMP WHERE EMPNO=7566;
    rollback;
事务操作
1.提交事务
    用户不用commit提交事物务时,此时再开启一个sqlplus(第一个sqlplus不退出,若退出(quit,exit) oracle数据库自动提交事务)查询记录存在
2.回滚事务(rollback [to 保存点])
3.保存点(savepoint 保存点名称) 用于回滚部分事务

锁:(多个会话占用同一资源产生的问题)
select ... for update(手工加锁,对查询记录加锁)
    select * from myemp where deptno=10 for update;(手工加锁,对查询记录加锁)
    select * from myemp where deptno=20 for update;
    
行级锁:
    用户执行了c r u d..for update 操作时,数据库实现记录的锁定(排他锁)
表级锁;
     对数据的整张表进行锁定
     lock table 表名称 in 锁定模式 mode [nowait];
     share: 共享锁,其他事务可以执行查询操作,不能执行修改操作
    第一个会话执行: 
        lock table myemp in share mode nowait;//表已锁定
    第二会话执行:
        select * from myemp;//返回查询结果
        delete from myemp;//等待
        
解锁:管理员身份
    alter system kill session 'sid,serial';(会话id,序列号)
    
1.以管理员身份登录 
2.查看数据库的状态
    select session_id,oracle_username,process from v$locked_object;
3.select sid,serial#,username,lockwait,status from v$session where sid in(sid,sid);
4.alter system kill session 'sid,serial';(注意杀死的的status:inactive)//系统已更改
    
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗恋花香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值