玩转oracle学习第三天

  总体大纲:

1.上节回顾

2.java程序如何操作oracle

3.如何在oracle中操作数据

4.oracle的事务处理

    5.sql函数的使用

1.java程序操作oracle数据库

 11.JDBC-ODBC桥连接操作oracle数据库
  java连接oracle数据库
import java.sql.*
    加载驱动
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    //JDBC-ODBC只能本地连接,不能远程连接
    //JDBC可以远程连接,通过制定Ip 和端口进行远程连接
    得到连接
      Connection ct = DriverManager.getConnection("jdbc:odbc:testsp","scott","tiger")   
     Statement sm = ct.createStatement();
     Results ....

1.2 JDBC连接oracle数据库

1.加载驱动
    class.forName("oracle.jdbc.driver.OracleDriver");
    2
.得到连接
  Connection ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:myoracle1","scott","tiger");   
    3.
关闭打开的资源
    rs.close();
    sm.close()
    ct.close();

分页显示前三条

int pageCount = 0;
    int rowCount = 0;
    int pageSize = 0;
    分页显示显示前三条:
   select * from (select a1.*,rownum rn from (select * from emp) a1 where rownum<=3) where rn >=1;

1.3 数据处理

oracle中操作数据,使用特定函数操作日期类型
    to_date函数的使用来插入日期
   to_date('1988-12-12','yyyy-mm-dd')
    to_date('1988/12/12','yyyy/mm/dd')
    使用子查询插入数据
    create table hesy(myId number(4),myname varchar2(50),myDept number(5));
 insert into hesy (myId,myname,mydept) select empno,ename,deptno from emp where deptno = 10;
    使用子查询更新数据
   使用update语句更新数据时,既可以使用表达式或者数值直接修改数据,也可以使用子查询修改数据
    update emp set job=(select job from emp where ename='SMITH'),sal=(select sal from emp where ename='SMITH'),...;
    或者
   update emp set (job,sal,comm)=(select job,sal,comm from emp where ename='SMITH') where ename='SCOTT';
    什么是事务
    事务用于保证数据的一致性,它由一组相关的dml语句(增删改语句)组成,该组的dml语句要么全部成功,要么全部失败 
    事务和锁
    提交事务:
    savepoint a1;
    savepoint a2;
    rollback to a2;
    rollback to a1;
      设置保存点,并且可以回滚的前提是没有commit,一旦commit提交以后,就不能进行回滚了,即保存点是失效的
      不提交,事务不会有变化的 
      rollback:取消所有事务
     java程序中如何使用事务
     ct.setAutoCommit(false);
     update emp set sal = sal -100 where ename='scott'   
      update emp set sal = sal +100 where ename='SMITH'
    ct.commit();
    catch
          ct.rollback();      
    只读事务:
      只读事务是指只允许执行查询的操作,而不允许执行任何其它dml操作的事务,使用只读
      事务可以  
     设置只读事务
      set transaction read only;
      sql函数的使用 
      (1)字符函数
      oracle最常用的函数,由如下:
      lower(char)
      upper(char)
      length(char)
      substr(char,m,n) 取子串,从m开始,取三个长度
      以首字母大写,其它小写显示所有姓名
      select (upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1))) as name from emp;
      replace函数,字符替换,将A替换成我是老虎
      select replace(ename,'A','我是老虎') from emp;
      instr函数,找字符串位置   
      (2)数学函数
      数学函数的输入参数
      round:该函数用于四舍五入
      trunc:截取数字,取整
      mod:取模
      floor:返回小于等于,向下取整
      ceil:返回大于等于
      round(sal,1)四舍五入保存一位小数
      select trunc(comm,1),comm from emp where ename='shunping';//小数点后截取一位,只保留一位小数
      trunc(comm) 取整数
      其它数学函数:
      abs
      acos
      asin
      atan
      cos
      exp
      log(m,n)
      power(m,n):返回m的n次方
      (3)日期函数
      日期函数用于处理date类型的函数
      默认情况下日期格式是dd-mon-yy 即12-7月-78
      sysdate :返回系统时间;
      select sysdate from dual;
      add_months(d,n)增加月份
      select * from emp where sysdate>add_months(hiredate,8);
      last_day(d):返回指定日期所在月份的最后一天
      计算员工入职天数
      select floor(sysdate-hiredate)  "入职天数" from emp;
      找出各月倒数第三天受雇的所有员工
      select hiredate,ename from emp where last_day(hiredate) = hiredate;
      //select hiredate,last_day(hiredate) from emp;
      (4)转换函数
      用于将数据类型从一种类型转换为另外一种,在某些情况下,oracle server允许值得数据类型和实际的不一致,这时
      oracle server会隐含的转化数据类型,例如'10' -> 10  1->'1'
      to_cahr:转换字符串使用,
      select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
      工资前面加上RMB的使用方法:
      select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss'),to_char(sal,'L99999.99') from emp;//L表示本地货币单位 99999.99表示工资格式是5位整数,小数点取 两位的个数
      select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss'),to_char(sal,'$99,999.99') from emp; 
      显示1980年入职的所有员工
      select ename to_char(hiredate,'yyyy') from emp where to_char(hiredate,'yyyy') = 1980;  
      显示12月份入职的员工
      select ename to_cahr(hiredate,'mm') from emp to_cahr(hiredate,'mm') = 12;
       to_date:字符串转换成date类型
      sys_context:系统函数
      terminal:当前会话客户所对应的终端的标识符
      language:语言
      db_name:当前数据库名称
      select sys_content('userenv','db_name') from dual;
      select sys_content('userenv','language') from dual;
      select sys_content('userenv','session_user') from dual;
      select sys_content('userenv','current_schema') from dual;//选择方案
      用户和方案的关系:
      用户:用户一旦创建,oracle就会为用户创建方案,方案名和用户名一致,是一样对应的            
      方案:方案中包含了各种各样的数据对象,表,视图,触发器,表空间,触发器,存储过程
      



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值