代码改变世界

Oracle操作6

2020-03-14 23:04  默默不语  阅读(273)  评论(0编辑  收藏  举报
--查询数据库的时区,默认是世界时区+00:00
select DBTIMEZONE from dual;
--查询当前会话的时区,默认是你计算机(服务器)的时区(北京时区+08:00)
select SESSIONTIMEZONE from dual;
--设置会话的时区
alter session set time_zone='+09:00'
--to_char() FM作用:去除因为9999引发的空格
select to_char(0.596,'FM99900.00') from dual
--regexp_replace()利用指定的正则表达式来进行替换
--start参数:从第几个开始查找,默认从头,也就是1
--occu参数:替换第几个匹配的项,默认为0,全部替换,1表示将匹配到的第一个进行替换,后面再有匹配的则不在替换
--match_opt:匹配模式(例如忽略大小写模式)
select e.ename, regexp_replace(e.ename,'S','-',2 ,0,'i') from emp e
--表连接查询都可以用子查询替换,但反过来说却不一定
--连接查询的效率要远远高于子查询
select * from emp e inner join dept d on e.deptno=d.deptno;
--bug无法看到dept表中的列
select e.*,
       (select d.deptno from dept d where e.deptno = d.deptno) deptno,
       (select d.dname from dept d where e.deptno = d.deptno) dname,
       (select d.loc from dept d where e.deptno = d.deptno) loc
  from emp e
 where e.deptno in (select d.deptno from dept d)