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的优先级最低,算术运算符的优先级最高。