5.windows-oracle实战第五课 --事务、函数

什么是事务

       事务用于保证数据的一致性,它由一组相关的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)取模

 

 

 
日期函数用于处理date类型的数据,oracle默认是dd-mon月-yy
 
(1)sysdate:该函数返回系统时间
(2)add_months(d,n) 加月份的函数
(3)last_day:返回指定日期所在月份的最后一天
 
查找已经入职400月多的员工
select *from emp where sysdate>add_months(hiredate,400);

 

显示满10年的员工姓名和受雇时间
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

 

 
转换函数:用于将数据类型从一种类型转换成另外一种;如将“10” 转换成10;将10转换成10。
函数
to_date('1992-12-12','yyyy-mm-dd') 将字符串转化成date类型的数据 ,在插入日期的时候可以用到。
to_char   
     1)显示更加细致灵活   
     2)显示指定的货币符号(用到在查)
时分秒都显示出来
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss')  from emp;

 

显示12月份入职的员工
select *from emp where to_char(hirdedate,'mm') =12;

 

 

 
 
posted @ 2019-12-24 22:23  小熊尤里  阅读(181)  评论(0编辑  收藏  举报