oracle TCL事务控制语言及 运算符

1   TCL事务控制语言

1.1         提交

事务的提交比较简单;直接在执行DML语句后进行提交即可,如果不提交事务则刚刚通过DML语句进行修改的内容还未保存到数据库中,只在当前用户的连接会话中有效。要永久变更数据需要显示地执行提交、回滚或者退出当前回话(如退出sqlplus)。

提交的命令为:commit;

1.2         保存点与回滚

保存点savepoint一般与回滚rollback配合使用。在设置了savepoint后事务的粒度可以控制的更加细化,可以回滚到特定的保存点。

【语法】保存点savepoint

SAVEPOINT <savepoint_name>;

 

【示例】

--创建一个保存点,名称为a

savepoint a;

 

【注意】当创建保存点之后执行的DML操作,可以进行回滚,而保存点之前未提交的DML操作不受影响。

 

 

【语法】回滚

ROLLBACK [TO savepoint];

 

【示例】

--回滚到保存点a,即在保存点a之后的所有未提交的DML都无效。

rollback to a;

 

 

/*保存点与回滚完整示例*/

--1、创建保存点a

savepoint a;

--2、插入emp数据 it1

insert into emp(empno,ename) values(1234,'it1');

--3、创建保存点b

savepoint b;

--4、插入emp数据 it2

insert into emp(empno,ename) values(1235,'it2');

--5、查看emp表数据,存在it1、it2两条数据

select ename from emp;

--6、回滚到保存点b,即it2数据将消失

rollback to b;

--7、查看emp表数据,存在it1的数据,it2已不在

select ename from emp;

--8、提交数据

commit;

--9、查看emp表数据,存在it1的数据

select ename from emp;

--10、回滚到保存点a,将报错保存点不存在的错误信息

rollback to a;

 

 

2              运算符

2.1         算术运算符

+、-、*、/

2.2         比较(关系)运算符

=、!=、<>、< 、 >、 <= 、 >= 、 between...and... 、in 、like

、is null

2.3         逻辑运算符

AND(逻辑与),表示两个条件必须同时满足

OR(逻辑或),表示两个条件中有一个条件满足即可

NOT(逻辑非),返回与某条件相反的结果

2.4         连接运算符

||

【示例】

select '工号为:' || empno || ' 的员工的姓名为:'|| ename from emp;

 

2.5         集合运算符

union(并集无重复)

union all(并集有重复)

intersect(交集,共有部分)

minus(减集,第一个查询具有,第二个查询不具有的数据)

 

【注意】:列数相关,对应列的数据类型兼容,不能含有Long类型的列,第一个select语句的列或别名作为结果标题

 

--union(并集将去重复)

select * from emp where deptno=10

union

select * from emp where deptno=20;

 

--intersect(交集) 查询工资即属于1000~2000区间和1500~2500区间的工资

select ename,sal from emp where sal between 1000 and 2000

intersect

select ename,sal from emp where sal between 1500 and 2500;

 

--minus(减集)

select ename,sal from emp where sal between 1000 and 2000

minus

select ename,sal from emp where sal between 1500 and 2500;

 

 

2.6         运算符优先级

 

优先级

运算符

1

算术运算符

2

连接符

3

比较符

4

IS[NOT]NULL, LIKE, [NOT]IN

5

[NOT] BETWEEN

6

NOT

7

AND

8

OR

可以使用括号改变优先级顺序;OR的优先级最低,算术运算符的优先级最高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值