oracle特殊数据查询技术

来源:互联网 发布:执行云计算的服务器 编辑:程序博客网 时间:2024/04/30 11:32

– 实验目的:

– 一、掌握日期型数据的操作技术

– 二、掌握层次查询技术

– 三、理解情景查询与翻译查询技术

– 四、了解统计查询技术

– 实验内容:

– 一、日期型数据的操作

prompt 日期型数据的查询显示
select hiredate
from emp;

prompt 不同语言环境下日期型数据查询结果的差异
prompt 语言从中文修改成英文
alter session set nls_date_language = ‘AMERICAN’;
select hiredate
from emp;

prompt 语言从英文修改为中文
alter session set nls_date_language = ‘SIMPLIFIED CHINESE’;

prompt SESSION 每建立一个连接connection会创建一个session会话
–select * from v$session;网上是这样的 ,不知道对不对?
这里写图片描述
prompt 自由控制日期型数据的显示格式的方法
alter session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;
select sysdate from dual;

prompt 日期型数据的使用方法
select to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) as systime
from dual;

prompt 不同语言环境下添加记录时日期型数据的使用方法
select to_char(sysdate,’yyyy,mon dd hh24:mi:ss’) as chinatime
from dual;
alter session set nls_date_language = ‘AMERICAN’;
select to_char(sysdate,’yyyy,mon dd hh24:mi:ss’) as chinatime
from dual;
这里写图片描述
与当前的语言环境一致的格式
select to_char(hiredate,’yyyy-mm-dd hh-mi-ss’)
from emp;

prompt 自由控制不同形式的日期型数据在数据添加与修改中的应用
select to_char(hiredate,’yyyy-mm-dd hh-mi-ss’),
to_char(hiredate,’yyyy,mon dd ‘),
to_char(hiredate,’month-dd-yy’)
from emp;

prompt 避免使用2位年份,先用其他方式处理使之成为4位
select to_char(sysdate,’yyyy-mon-dd’),
to_char(to_date(‘98-10月-22’,’yy-mon-dd’),’yyyy-mm-dd’)
from dual;
这里写图片描述
prompt 避免使用文字化的月份
alter session set nls_date_language = ‘AMERICAN’;
select to_char(sysdate,’yyyy,mon dd hh24:mi:ss’) as chinatime
from dual;
– 注意事项:2位数的年份会导致意外情况

prompt 当前世纪前半叶后半叶的区别
select to_char(to_date(‘33-10月-22’,’yy-mon-dd’),’yyyy-mm-dd’)
to_char(to_date(‘98-10月-22’,’yy-mon-dd’),’yyyy-mm-dd’)
from dual;
这里写图片描述
– 二、层次查询技术
select empno,ename,mgr
from emp;
prompt ———————-
prompt 深度遍历的层次查询
select empno,ename,mgr
from emp
start with empno=7839
connect by prior empno=mgr;

– select fieldName
– from tableName
– start with rootCondition
– connect by prior fieldname = fieldName

– 上级节点的字段 当前节点的字段

prompt 广度遍历的层次查询
select empno,ename,mgr
from emp
start with empno=7839
connect by prior empno=mgr
order by level;
这里写图片描述
column ename format A20;

prompt 形成环路的层次查询
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=7934
connect by prior mgr=empno;
这里写图片描述
– 三、情景查询与翻译查询技术

prompt 情景查询

– 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;
prompt 翻译查询
column translatesal format A10;
– translate(fieldName,beforeValue,afterValue)
select empno,translate(sal,1234567890,4678513092) as translatesal
from emp;
这里写图片描述
– 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

0 0
原创粉丝点击