oracle修改表的内容和事务性
来源:互联网 发布:java开发设计师 编辑:程序博客网 时间:2024/05/22 05:25
修改表的内容和事务性
一、使用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语句,在执行时,应该做为一个整体永久性的修改数据内容,或作为一个整体永久性的取消修改数据库内容下面介绍一个实例来展示事物隔离级别设置成SERIALIZABLE的效果如:银行转账的例子
事务的提交和回滚
**提交: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:幻象读取,可重复读,脏读都不容许;
首先定义2个事物:T1和T2,T1使用默认的隔离级别READ CMMITTED;T2使用SERIALIZABLE级别,T1和T2都对如person表进行操作,然后T1在person表中新增一行,并修改该表的一行记录,由于T2的事物隔离级别设置成ERIALIZABLE级别,则看不到T1的更改和插入,这是因为读取新插入的一行是幻象读取,查询修改过的行是不可重复读,而SERIALIZABLE级别对这2中操作都不支持
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
0 0
- oracle修改表的内容和事务性
- oracle修改表的内容和事务性
- msyql 触发程序在处理事务性和非事务性表的区别
- oracle:修改表的内容
- 查看mysql表的事务性
- mysql的事务性,锁和隔离性
- mysql的事务性,锁和隔离性
- Lucene的事务性
- 大数据和事务性系统
- 如何保证WebService的事务性
- Zookeeper对于事务性的支持
- jeecms中修改留言内容和回复内容的字数
- ORACLE触发器及如何直接修改新增行的内容
- oracle修改一个字段的某部分内容
- mysql二进制日志处理事务和非事务性语句的区别
- 事务性复制强制订阅的删除
- PHP 修改和删除XML内容的原理和方法
- oracle修改表和索引的表空间
- 操作系统学习--死锁和饿死
- 创建oracle数据库三种类型
- 浅析linux内核中的EXPORT_SYMBOL()
- 编程之美 3.4 的扩展问题:遍历一遍单链表,使得元素顺序相反
- cocos2d-x中的尺寸之三
- oracle修改表的内容和事务性
- 内外网都可以访问的路由表设置
- 中荷两国元首共同出席中荷经贸合作论坛开幕式
- Smarty 模板引擎插件开发接触
- 关于排序的稳定性问题
- 打开文件对话框与目录选择对话框
- java 字符串转image
- oracle中数据库名和实例名
- HDU解题报告——1012