什么是事务
事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。
事务和锁
当执行一个事务dml的时候,oracle会被作用的表上加锁,防止其他用户改表的结构。
保存点是一个回退机制,个数没有限制
savepoint a1;
delete from emp where empno=9996;
select *from emp;
savepoint a2;
delete from emp where empno=9990;
rollback to a2;
rollback to a1;
如果commit提交事务,会确认事务的变化,结束事务,删除保存点,释放锁,其他会话将可以查看事务变化的新数据。如果不提交,关闭后,会自动提交;全部取消 rollback。
只读事务:可以确认用户只能取得某时间点的数据。尽管其他会话可能提交新的事务,但是只读事务将不会取得最新数据的变化,从而保证取得特定时间点的数据信息。set transaction read only
常见字符函数:
lower(char):将字符串转化为小写的格式
upper(char):将字符串转化为大写的格式
length(char):返回字符串的长度
substr(char ,m,n):取字符串的子串
replace(char1,search_string,replace_string):替换
显示正好有5个字符的员工的要求
显示所有员工姓名的前三个字符
以首字符大写的方式显示所有员工的姓名
以首字母小写方式显示所有员工的姓名
显示所有员工的姓名,用“我是A” 替换所有"A"
常见数字函数
round(char,m) 四舍五入
trunc(char,m)小数点后面通通舍去
floor(char) 往下取整
ceil(char) 向上取整
mod(m,n)取模
select *from emp where sysdate>add_months(hiredate,400);
select *from emp where sysdate>=add_months(hiredate,12*10);
对于每个员工,显示加入公司的天数
select trunc(sysdate-hiredate) "入职天数",ename from emp;
找出各个月份倒数第三天受雇的所有员工
select hiredate,ename from emp where last_day(hirddate)-2=hiredate