zoukankan      html  css  js  c++  java
  • oracle高级数据查询技术

    实验五 oracle高级数据查询技术
    实验目的:
     一、掌握日期型数据的操作技术
     二、掌握层次查询技术
     三、理解情景查询与翻译查询技术
     四、了解统计查询技术

    实验内容:
    一、日期型数据的操作
     日期型数据的查询显示

    select hiredate from emp;


      不同语言环境下日期型数据查询结果的差异

    alter session set nls_date_language='AMERICAN';

    select hiredate from emp;


       

    alter session set nls_date_language='SIMPLIFIED CHINESE';

    select hiredate from emp;

    SESSION 每建立一个连接connection会创建一个session会话

    alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
    select hiredate from emp;


      自由控制日期型数据的显示格式的方法

    select to_char(hiredate,'y,yyy/mm/dd hh24:mi:ss day')from emp;


     日期型数据的使用方法

    select to_char(to_date('19-06-15','rr-mm-dd'),'yyyy-mon-dd')as systime
    from dual;



      不同语言环境下添加记录时日期型数据的使用方法

    select to_char(sysdate,'yyyy-Mon-dd hh:mi:ss') as chinatime
    from dual;

    alter session set nls_date_language='AMERICAN';

    select to_char(sysdate,'yyyy-Mon-dd hh:mi:ss') as Americantime
    from dual;

       与当前的语言环境一致的格式   

    select to_char(hiredate,'yyyy/mm//dd')
    from emp;



      自由控制不同形式的日期型数据在数据添加与修改中的应用

    select to_char(hiredate,'yyyy/mm/dd'),
    to_char(hiredate,'y,yyy-mon-dd'),
    to_char(hiredate,'rrrr-RM-dd')
    from emp;



     避免使用2位年份,先用其他方式处理使之成为4位

    select to_char(sysdate,'yyyy-mm-dd'),

            to_char(to_date('97-10-03','yy-mm-dd'),'yyyy-mon-dd'),
            to_char(to_date('02-05-07','yy-mm-dd'),'yyyy-mon-dd')
    from dual;

       避免使用文字化的月份

    alter session set nls_date_language='AMERICAN';
    select to_char(sysdate,'yyyy/Mon/dd hh24/mi/ss')as chinatime
    from dual;


      注意事项:2位数的年份会导致意外情况


       当前世纪前半叶后半叶的区别
    二、层次查询技术
     深度遍历的层次查询
     select fieldName
     from tableName
     start with rootCondition
     connect by prior fieldname  =  fieldname

    select empno,ename,mgr
    from emp
    start with empno=7839
    connect by prior empno=mgr;


       上级节点的字段   当前节点的字段
     广度遍历的层次查询

    select * from emp;
    select empno,ename,mgr
    from emp
    start with empno=7839
    connect by prior empno=mgr
    order by level;

     形成环路的层次查询
     
     select empno,(lpad('',(level-1)*2)||ename)as ename,mgr,level
    from emp
    start with empno=7839
    connect by prior empno=mgr;

     不再成为一棵树或森林了trees  图 graph net

    select empno,(lpad('',(level-1)*2)||ename)as ename,mgr,level
    from emp
    start with empno=7902
    connect by prior mgr=empno;

    三、情景查询与翻译查询技术
     情景查询
     decode(fieldName,orgValue,newValue)

    select ename,sal,decode(deptno,'10','会计部','20','销售部','30','研发部','其他部门')
    from emp;
    select ename,sal,case deptno
    when 10 then '会计部'
    when 20 then '销售部'
    when 30 then '研发部'
    else '其他部门'
    end
    from emp;

     翻译查询
     translate(fieldName,beforeValue,afterValue)

     SELECT empno,ename,decode(deptno,null,'未知')
     FROM EMP

     select translate(123.69,12345678,6901482735) transNum  
     from dual;
     update emp set sal=translate(1500.9,1234567890,6912035487) where empno=7;


    存储的数据类型
    数值型    int float   number(6,2)
    字符型   char    varchar   nchar  nvarchar   (varchar2)
    日期型    datetime  date  timestamp    


    展示的数据类型(查询结果的内容)
    字符型

    to_char(value,formatString)  将数值转换成指定格式的字符串   0 9 , .

    to_date(string,formatStirng  将字符串按指定格式转换成日期型数据

    NLS    native language system
    alter session set nls_language='%s' AMERICAN/SIMPLIFIED CHINESS

  • 相关阅读:
    PHP教程:PHPUnit学习笔记(三)测试方法进阶
    PHP教程:PHPUnit学习笔记(二)PHPUnit基本用法
    PHP教程:PHPUnit学习笔记(一)PHPUnit介绍及安装
    phpunit框架安装
    防注入(url)
    ssh 密钥详解
    JS判断登陆端是PC还是手机
    字节换算器
    gif 图片制作和拆解
    让你的网站秒开 为IIS启用“内容过期”
  • 原文地址:https://www.cnblogs.com/CQ--0101/p/10089262.html
Copyright © 2011-2022 走看看