Oracle(5)

Oracle基础五

一、日期型数据的操作

prompt  日期型数据的查询显示
select ename,hiredate
from emp;
set linesize 160;
set pagesize 66;

这里写图片描述

prompt  不同语言环境下日期型数据查询结果的差异
alter session set nls_language='AMERICAN';
select ename,hiredate
from emp;
alter session set nls_language='SIMPLIFIED CHINESE';
select ename,hiredate
from emp;

这里写图片描述

prompt  SESSION 每建立一个连接connection会创建一个session会话
alter session set nls_date_format='month-dd-yyyy';
select ename,hiredate
from emp;

这里写图片描述

prompt  自由控制日期型数据的显示格式的方法
select to_char(hiredate,'yyyy-mm-dd  hh24:mi:ss' )
from emp;

这里写图片描述

prompt  日期型数据的使用方法
select  to_char(sysdate,'yyyy-mon-dd'),
        to_char(to_date('17-5月-16','yy-mon-dd'),'yyyy-mon-dd') as SYSTEMTIME 
from dual;
prompt  不同语言环境下添加记录时日期型数据的使用方法
select to_char(sysdate,'yyyy-mon-dd    hh24:mi:ss' )  as CHINESETIME
from dual;
alter session set nls_language='AMERICAN';
select to_char(sysdate,'yyyy-mon-dd    hh24:mi:ss' )  as AMERICANTIME
from dual;

这里写图片描述

prompt  与当前的语言环境一致的格式   
select to_char(hiredate,'yyyy/mm/dd    hh24:mi:ss' )  as NOWTIME
from emp;

这里写图片描述

prompt  避免使用文字化的月份
alter session set nls_date_language='AMERICAN';
select to_char(sysdate,'yyyy/Mon/dd hh24/mi/ss')as chinatime
from dual;
prompt  自由控制不同形式的日期型数据在数据添加与修改中的应用
select to_char(hiredate,'yyyy/mm/dd'),
to_char(hiredate,'y,yyy-mon-dd'),
to_char(hiredate,'rrrr-RM-dd')
from emp;

这里写图片描述

prompt  避免使用2位年份,先用其他方式处理使之成为4位
prompt  当前世纪前半叶后半叶的区别
select  to_char(sysdate,'yyyy-mm-dd'),
        to_char(to_date('19-06-15','yy-mm-dd'),'yyyy-mm-dd'),
		to_char(to_date('79-06-15','yy-mm-dd'),'yyyy-mm-dd')
from dual;
select  to_char(sysdate,'yyyy-mm-dd'),
        to_char(to_date('19-06-15','rr-mm-dd'),'yyyy-mm-dd'),
		to_char(to_date('79-06-15','rr-mm-dd'),'yyyy-mm-dd')
from dual;

这里写图片描述
注意事项:2位数的年份会导致意外情况

二、层次查询技术

prompt 深度遍历的层次查询
 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;

这里写图片描述

prompt 广度遍历的层次查询
select * from emp;
select empno,ename,mgr
from emp
start with empno=7839
connect by prior empno=mgr
order by level;

这里写图片描述

prompt 形成环路的层次查询
select empno,(lpad('',(level-1)*2)||ename)as ename,mgr,level
from emp
start with empno=7839
connect by prior empno=mgr;
prompt 不再成为一棵树或森林了trees  图 graph net
column ename format A20;
select empno,(lpad('',(level-1)*2)||ename)as ename,mgr,level
from emp
start with empno=7369
connect by prior mgr=empno;

这里写图片描述

三、情景查询与翻译查询技术

prompt 情景查询
-- decode(fieldName,orgValue,newValue)
select ename,sal,decode(deptno,'10','销售部','20','外联部','其他部门')
from emp;
select ename,sal,case deptno
when 10 then '销售部'
when 20 then '外联部'
else '其他部门'
end
from emp;

这里写图片描述

prompt 翻译查询
SELECT empno,ename,decode(deptno,null,'未知')
FROM EMP;
select translate(123.69,1234567890,6901482735) transNum       
from dual;
select  123.789, translate (123.789, 1234567890, 5432109876) encryte from dual;
select  543.987, translate (543.987, 5432109876, 1234567890) decryt from dual;
update emp set sal=translate(1500.9,1234567890,6912035487) where empno=7698;
rollback;

这里写图片描述

 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;

存储的数据类型:
1.数值型 int float number(6,2)
2. 字符型 char varchar nchar nvarchar (varchar2)
3. 日期型 datetime date timestamp
4. 展示的数据类型(查询结果的内容)
字符型
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值