天易09----韩顺平oracle视频讲解部分总结(03)

什么是事务:

事务用于保证数据的一致性,它由一组相关的dml(增删改三种语句)语句组成,该组的dml语句要么全部成功,要么全部失败。

如:网上转账就是典型的要用事务来处理,用以保证数据的一致性。

package com.myoral.test;

import java.sql.*;

public class CommitShiWu {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Connection con=null;

try{

Class.forName("oracle.jdbc.driver.OracleDriver");

con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:sjjz","wangzihu","wangzihu");

//加入事务处理

con.setAutoCommit(false);

Statement sta=con.createStatement();

sta.executeUpdate("update bookstore t set t.price=price+100 where t.id=163");

int i=4/0;//做出一个异常用来测试数据是否一致提交

sta.executeUpdate("update bookstore t set t.price=price-100 where t.id=164");

con.commit();

sta.close();

con.close();

}catch(Exception e){

try{

//如果发生异常,就回滚

con.rollback();

}catch(Exception ex){

ex.printStackTrace();

}

e.printStackTrace();

}

}

}


显示正好为5个字符的员工的姓名:

Select * from emp where length(ename)=5;

显示所有员工姓名的前三个字符:

Select substr(ename,1,3) from emp;(1代表是从第一位开始取,3代表取几个字符)

以首字母大写的方式显示所有员工的姓名:

第一步:完成首字母大写:

Select upper(substr(ename,1,1)) from emp;

第二步:完成后面字母小写:

Select lower(substr(ename,2,length(ename-1)) from emp;

第三步:合并(合并符合为||):

Select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename-1)) from emp;

数学函数:

1.round(n,[m])

该函数用于执行四舍五入,如果省掉m,则四舍五入到整数;如果m是整数,则四舍五入到小数点的m位后,如果m是负数,则四舍五入到小数点的m位前

Select round(sal) from emp where ename=shunping;

Select round(comm,1),comm from emp where ename=shunping;

2.trunc(n,[m])

该函数用于截取数字,如果省掉m,就截去小数部分,如果m是正数就截取到小数点的m位后,如果m是负数,则截取到小数点的前m

Select trunc(comm,1),comm from emp where ename=shunping;

Select trunc(comm,-1),comm from emp where ename=shunping;(如果是-1则是截取个位上的数字)

3mod(m,n)(取模)

Select mod(10,2) from dual;

Select mod(10,3) from dual;

在做oracle测试的时候,可以使用dual表,它是一个虚拟的表

4.floor(n)

返回小于或是等于n的最大整数

Select floor(comm),comm from emp where ename=shunping;

5.ceil(n)

返回大于或是等于n的最小整数

Select ceil(comm),comm from emp where ename=shunping;

6.案例:

显示在一个月为30天的情况所有员工的日薪金,忽略余数

Select trunk(sal/30),ename from emp;(或者 select floor(sal/30),ename from emp;)

日期函数:

日期函数用于处理date类型的数据。

默认情况下日期格式是dd-mon-yy12-7-7

(1)sysdate:该函数返回系统时间

select sysdate from dual;

(2)add_months(d,n)

(3)last_day(d):返回指定日期所在月份的最后一天

找出各月倒数第3天受雇的所有员工

Select hiredate,ename from emp where last_day(hiredate)-2=hiredate;

查找已经入职8个月多的员工

Select * from emp where sysdate>add_months(hiredate,8);(hiredate为字段)

显示满10年服务年限的员工的姓名和受雇日期。

Select * from emp where sysdate>=add_months(hiredate,12*10);(hiredate为字段)

对于每个员工,显示其加入公司的天数

Select trunc(sysdate-hiredate) 入职天数 ,ename from emp;(字段必须是date日期型的)

To_char的使用:

Select ename,to_char(hiredate,yyyy-mm-dd hh24:mi:ss),to_char(sal,L99999.99) from emp;

显示1980年入职的所有员工:

Select * from emp where to_char(hiredate,yyyy)=1980;

显示12月份入职的所欲员工:

Select * from emp where to_char(hiredate,mm)=12;

你可能感兴趣的:(oracle)