Oracle数据库特殊查询技术
附加实验 oracle高级数据查询技术
实验目的:
一、掌握日期型数据的操作技术
二、掌握层次查询技术
三、理解情景查询与翻译查询技术
四、了解统计查询技术
实验内容:
一、日期型数据的操作
日期型数据的查询显示
不同语言环境下日期型数据查询结果的差异
SESSION 每建立一个连接connection会创建一个session会话
SELECT * FROM v$session;
自由控制日期型数据的显示格式的方法
日期型数据的使用方法
SELECT to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) as systime
FROM dual;
不同语言环境下添加记录时日期型数据的使用方法
与当前的语言环境一致的格式
SELECT to_char(hiredate,’yyyy-mm-dd hh-mi-ss’)
FROM emp;
自由控制不同形式的日期型数据在数据添加与修改中的应用
ALTER session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;
SLECT sysdate
FROM dual;
避免使用2位年份,先用其他方式处理使之成为4位
避免使用文字化的月份
注意事项:
2位数的年份会导致意外情况
当前世纪前半叶后半叶的区别
二、层次查询技术
深度遍历的层次查询
SELECT fieldName
FROM tableName
start with rootCondition
connect by prior fieldname = fieldName
上级节点的字段 当前节点的字段
广度遍历的层次查询
形成环路的层次查询
不再成为一棵树或森林了trees 图 graph net
三、情景查询与翻译查询技术
情景查询
decode(fieldName,orgValue,newValue)
翻译查询
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
CHINESE