`

oracle修改表的内容和事务性

阅读更多

 

修改表的内容和事务性

一、使用insert添加行

**添加行
insert into table_name(id,name,address)values(6,'john','北京')
**忽略列的列表添加
insert into table_name values(6,'john','北京')
**为列指定空值:
insert into table_name(id,name,address)values(6,'john',null);前提是该字段可为空;

二、使用update修改行

 

三、使用delete删除行

 

四、数据库的完整性

在执行DML(insert update,delete)等操作时,数据库会维护自身结构的完整性,主要有一下约束
**主键约束
**外键约束



五、使用MERGE合并行

merge可以将一个表中的行合并到另一个表中
如:
merge into product p using order p2 on (p.id=p2.id)
when matched then
update set p.name =p2.name p.price=p2.price
when not matched then
insert (p.id ,p.name,p.price) values(p2.id,p2.name,p2.price);
注意:
merge into 指明了合并的操作的目标表
using....into :指定一个表连接
when matched then:指定当一行满足using ....on 子句的条件时执行update操作,不满足时,执行insert操作

六、数据库事务

事务是一组不可分割的SQL语句,在执行时,应该做为一个整体永久性的修改数据内容,或作为一个整体永久性的取消修改数据库内容

如:银行转账的例子

事务的提交和回滚
**提交:commit语句
**回滚:rollback
事务的开始与结束
事务是分割数据库活动的逻辑工作单元,既有起点,又有终点
开始:
*连接到数据库,并执行一条DML语句
*前一个事务结束后,输入了另一条DML语句
结束:
执行commit或rollback
执行一条DDL语句.如create table语句,这种情况会自动执行commti
执行一条DCL语句
断开与数据库连接
保存点
保存点可在事务的任何地方设置,可将修改回滚到保存点处,一般用于很大的事务,使用savepoint sava1;定义,save1为保存点名
如回滚到保存点处:rollback to savepoint save1;
*事务的ACID特性
事务的4个基本特性:
**原子性:事务必须成组地提交或回滚,是一个不可分割的工作单元
**一致性:数据库的状态必须保持一致;无论事务是开始还是结束
**隔离性:多个事务可独立运行;互不影响
**持久性:事务被提交后,数据能永久保存.
并发性
Oracle支持多个用户同时与数据库交互.每个用户都可独立运行自己的事务,若多个用户对同一个表进行操作,则这些事务都是独立的,直到执行一条commit才会发生影响
事务的隔离级别
定义:一个事物对数据库的修改与并行的另一个事物的隔离程度.
事物并行可能出现的问题:
*幻象读取
*可重复读
*脏读:
处理这些问题的措施:
READ UNCMMITTED:幻象读取,可重复读,脏读都容许;
READ CMMITTED;可以幻象读取,可重复读,不可脏读
REPEATABLE READ:容许幻象读取,不容许可重复读,脏读

SERIALIZABLE:幻象读取,可重复读,脏读都不容许;

 

下面介绍一个实例来展示事物隔离级别设置成SERIALIZABLE的效果

首先定义2个事物:T1和T2,T1使用默认的隔离级别READ CMMITTED;T2使用SERIALIZABLE级别,T1和T2都对如person表进行操作,然后T1在person表中新增一行,并修改该表的一行记录,由于T2的事物隔离级别设置成ERIALIZABLE级别,则看不到T1的更改和插入,这是因为读取新插入的一行是幻象读取,查询修改过的行是不可重复读,而SERIALIZABLE级别对这2中操作都不支持

 

 
T1(READ CMMITTED) T2(SERIALIZABLE级别)
  settransaction isolation level serializable
select * from person; select * from person;
insert into person(id,name)values(1,"john")  
update person p set p.name="lily" where p.id =1;  
select * from person;
select * from person;
返回结果中包含插入的新行和修改的行 返回结果与原来的相同,以为T2的事物隔离级别设置为serializable
 

 

 

 
 
 
 
 
 
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    oracle_修改表结构

    ### Oracle 修改表结构知识点 #### 一、概述 在Oracle数据库中,经常需要对已有的表进行结构调整,比如添加新字段、修改字段属性、删除字段等。这些操作可以通过`ALTER TABLE`语句来完成。本篇文章将详细介绍如何...

    Oracle删除表中的重复数据

    本文将详细解析如何在Oracle中删除表中的重复数据,同时确保不损害和修改原表的其他数据。 ### Oracle删除表中的重复数据方法 在Oracle中删除表中的重复数据,可以采用多种策略,但通常涉及创建一个临时表来保存...

    Oracle事务与锁定

    Oracle事务与锁定是数据库管理系统中的核心概念,它们对于确保数据的完整性和一致性至关重要。事务是数据库操作的基本单元,它封装了一系列的数据库操作,确保这些操作要么全部成功,要么全部失败,从而保持数据库的...

    oracle 在java中的事务处理和异常回滚。

    在Java编程中,Oracle数据库是常用的后端存储系统,而事务处理和异常回滚是确保数据一致性、完整性和可靠性的关键机制。以下是对这个主题的详细讲解。 首先,Oracle JDBC驱动程序是Java与Oracle数据库之间通信的...

    oracle 事务 回滚 存储过程

    Oracle事务与存储过程的结合为数据库应用程序提供了强大的工具,以确保数据一致性和完整性。正确理解和应用这些概念对于开发高效、可靠的数据驱动应用程序至关重要。通过深入研究示例代码,我们可以更好地掌握如何在...

    Oracle的锁表与解锁

    锁可以分为行级锁(Row Level Lock)和表级锁(Table Level Lock),以及更细粒度的锁类型。本文将深入探讨Oracle中的锁机制,特别是如何锁表与解锁,以及相关的SQL查询语句,帮助数据库管理员和开发人员更好地理解...

    Oracle用户(user)和表空间(tablespace).pdf

    本文主要探讨了 Oracle 用户(user)和表空间(tablespace)的相关概念、创建、配置、修改以及删除等核心操作,旨在为初学者提供一个清晰的学习路径。 首先,Oracle 用户是数据库的访问实体,它代表了数据库的认证...

    Oracle分区表和锁的应用

    在企业级应用中,为了提升数据管理效率和优化查询性能,Oracle提供了分区表这一特性。同时,为了保证数据的一致性和完整性,Oracle的锁机制也是其核心功能之一。下面我们将深入探讨Oracle分区表和锁的应用。 一、...

    oracle ITL事务槽

    Oracle ITL(Interested ...它有效地跟踪和管理事务状态,确保数据一致性,并通过各种策略减少资源冲突,从而提升系统的整体性能和可靠性。了解和掌握ITL的工作原理对于优化Oracle数据库的性能和解决并发问题至关重要。

    在oracle中使用事务

    在Oracle数据库中,事务处理是确保数据完整性和一致性的重要机制。事务可以被看作是一系列操作的集合,这些操作作为一个整体被执行,要么全部成功,要么全部失败。这遵循了ACID(原子性、一致性、隔离性、持久性)...

    Oracle事务、锁表查询及相关实用查询SQL语句

    根据锁定范围的不同,可以分为行级锁定和表级锁定。 - **锁定类型**: - **共享锁(Share Locks)**:允许多个用户读取同一份数据。 - **排他锁(Exclusive Locks)**:只允许一个用户进行修改操作。 - **行级...

    Oracle的Temp表空间和UNDO表空间的处理

    通过以上介绍可以看出,在Oracle数据库中,正确管理和优化Temp表空间和UNDO表空间是非常重要的,尤其是对于那些执行大量排序、分组操作以及频繁进行事务处理的应用系统来说。合理利用Resize调整大小、替换原有表空间...

    Oracle数据库创建表空间和用户.doc

    在Oracle数据库管理中,创建表空间和用户是基础但至关重要的操作,这直接影响到数据库的性能、安全性和数据管理效率。以下将详细解析如何在Oracle数据库中创建表空间和用户,以及这一过程中涉及的关键概念和步骤。 ...

    oracle 数据操作与事务控制

    Oracle 数据操作与事务控制是数据库管理中的核心概念,主要涉及如何在Oracle数据库中添加、修改和删除数据,以及如何确保这些操作的完整性和一致性。在本章中,我们将深入探讨Oracle的数据操作语言(DML)和事务控制...

    oracle 移动表空间

    在Oracle数据库管理系统中,移动表空间是...在实际操作中,根据数据库的规模和复杂性,可能还需要考虑其他因素,如归档日志、闪回区域、表分区等。因此,理解并熟练掌握这些操作对于保持数据库的高效运行至关重要。

    查看Oracle锁表

    在Oracle数据库管理过程中,锁定机制是一项重要的功能,它用于确保数据的一致性和事务处理的安全性。当多个用户试图同时访问同一数据时,可能会出现并发问题,这时就需要通过锁定来控制对数据的访问。本文将详细介绍...

    Oracle-修改数据和事务.ppt

    在Oracle 10g版本中,数据操纵是数据库管理的核心部分,包括插入、修改和删除数据等操作。本课件主要讲解了如何在Oracle数据库中进行这些基本操作。 首先,我们来看插入数据。插入数据是向表中添加新记录的过程,...

    Oracle临时表

    根据数据的生命周期,Oracle临时表可以分为两大类:事务临时表和会话临时表。 ##### 1. 事务临时表 - **定义**:事务临时表中的数据仅在当前事务的生命周期内有效。一旦事务结束(通过提交或回滚),表中的所有...

    oracle事务处理

    Oracle 事务处理是数据库管理中的核心概念,主要目的是确保数据的一致性和完整性。在Oracle数据库系统中,事务是由一系列DML(数据操作语言)语句构成的,这些语句包括INSERT、DELETE和UPDATE等。事务的特性是"原子...

    oracle脚本-oracle常用表及数据

    这个压缩包里的内容就是这样的一个工具集,能够帮助初学者更好地理解和掌握Oracle数据库的使用。 总的来说,"oracle脚本-oracle常用表及数据"是一个宝贵的教育资源,涵盖了Oracle数据库的基础操作和常见应用,对于...

Global site tag (gtag.js) - Google Analytics