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

    一、更新操作

    1、CREATE TABLE Test as SELECT * FROM DUAL; 复制表连同数据一起复制

    2、INSERT INTO 表名称 (字段)VALUES(列的值);

    3、INSERT INTO 表名称 (字段)SELECT (列)FROM DUAL;  注意子查询中的列要和插入表中的列一样

    4、UPDATE 表名称 SET (字段,字段......)=(SELECT 字段,字段......FROM 表名称 WHERE  字段=值)

    5、关联更新 update TA a set(name, remark)=(select b.name, b.remark from TB b where b.id=a.id)  where exists(select 1 from TB b where b.id=a.id)  注意 :exists后面的语句必须写

    二、事务处理:事务只能针对DML(数据操作语言),对(DDL)数据定于语言不起作用,如果执行了DDL(数据定于语言),所有未提交的事务将自动提交

    1、

    原子性:不能拆分

    一致性:要么同时成功,一旦有一个失败,就全部失败。

    隔离性:多个事物可以同时进行,但相互之间不会干扰

    持久性:系统奔溃时,事务依然可以提交

    2、事务操作命令

    SET AUTOCOMMIT=OFF 取消自动提交事务处理,开启事务处理

    SET AUTOCOMMIT=ON  打开自动提交处理,关闭事务处理

    COMMIT  提交事务

    ROLLBACK TO  回滚操作

    SAVEPOINT  设置事务保存点

    三、锁

    1、FOR UPDATE语句:手工加锁       SELECT *FROM DUAL FOR UPDATE      

    2、行锁:用户执行INSERT、UPDATE、DELETE、SELECT FOR UPDATE语句,ORACLE将其操作的数据锁定,直到其提交或者回滚完成。

    3、表锁:表锁只能手动锁定,LOCK TABLE dual IN SHARE MODE NOWAIT

    锁的模式:

    ROW SHARE:允许其他事务操作,但是不允许独占

    ROW EXCLUSIVE:

    SHARE:其他事务只能查询,不能修改

    SHARE ROW EXCLUSIVE:允许查询操作,不允许其他用户使用共享锁

    EXCLUSIVE:事务将独占锁定表,允许其他用户查询,但是不允许修改

    4、解锁

    查看数据库中的锁定情况

    SELECT session_id,oracle_username,process from v$locked_object;

    查看v$session数据字典

    SELECT sid,serial#,username,lockwait,status FROM v$session where sid IN (SELECT session_id from v$locked_object);

    解除锁定

    ALTER SYSTEM KILL SESSION (SELECT sid,serial# FROM v$session where sid IN (SELECT session_id from v$locked_object))

     四、DML, DDL, DCL

    1、DML 数据操作语言

    更新:UPDATE     INSERT       DELETE

    查询:SELECT

    2、DDL 数据定于语言

    CREATE     ALTER    DROP    TRUNCATE

    3、DCL   数据库控制语言

    授权相关的语句

  • 相关阅读:
    解决SQL Server Compact 无法在64位系统下正常运行
    Mvc5+Entity Framework6 之二----在MVC中用Entity Framework实现基本的CRUD
    Asp.net MVC5中Html.DropDownList的使用
    C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
    MVC学习 (二) Razor语法
    MVC学习 (一)
    编程实现机器人相遇
    jquery优化引发的思考
    (续)检测到有潜在危险的 Request.Form 值
    检测到有潜在危险的 Request.Form 值
  • 原文地址:https://www.cnblogs.com/zuoyoufengyuan/p/8252813.html
Copyright © 2011-2022 走看看