oracle高级数据查询技术

实验五 oracle高级数据查询技术
实验目的:
 1、掌握日期型数据的操做技术
 2、掌握层次查询技术
 3、理解情景查询与翻译查询技术
 4、了解统计查询技术session

实验内容:
1、日期型数据的操做
 日期型数据的查询显示oracle

select hiredate from emp;ui


  不一样语言环境下日期型数据查询结果的差别spa

alter session set nls_date_language='AMERICAN';翻译

select hiredate from emp;code


   

alter session set nls_date_language='SIMPLIFIED CHINESE';orm

select hiredate from emp;字符串

 

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

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

it


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

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位数的年份会致使意外状况


   当前世纪前半叶后半叶的区别
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;

3、情景查询与翻译查询技术
 情景查询
 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 systemalter session set nls_language='%s' AMERICAN/SIMPLIFIED CHINESS

相关文章
相关标签/搜索