文档章节

Oracle SQL总结

playgame
 playgame
发布于 2016/07/13 11:27
字数 1180
阅读 9
收藏 0

全部调试通过的。

select * from dual;


-- Oracle 日期格式函数
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;
select to_char(sysdate,'yyyy') as nowYear from dual;
select to_char(sysdate,'mm') as nowMonth from dual;
select to_char(sysdate,'dd') as nowDay from dual;
select to_char(sysdate,'hh24') as nowHour from dual;
select to_char(sysdate,'mi') as nowminute from dual;
select to_char(sysdate,'ss') as nowSecibd from dual;

--获得小时数 
 select sysdate ,to_char(sysdate,'hh') from dual;
 select sysdate ,to_char(sysdate,'hh24') from dual;


select to_date('2016-10-10 12:10:10','yyyy-mm-dd hh24:mi:ss') as nowTime from dual;
select to_date('2016-10-10','yyyy-mm-dd hh24:mi:ss') as nowTime from dual;
select to_date('2016-10-10','yyyy-mm-dd') as nowTime from dual;


select to_char(to_date(222,'J'),'Jsp') from dual;

--求某天是星期
select to_char(to_date('2016-7-13','yyyy-mm-dd'),'day') as weekDay from dual;

select to_char(to_date('2016-7-13','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE=American') as weekDay from dual;

--  两个日期间的天数 
select floor(sysdate-to_date('2016-7-10','yyyy-mm-dd')) as day from dual;
select floor(to_date('2016-10-10','yyyy-mm-dd')-to_date('2016-7-10','yyyy-mm-dd')) from dual;


-- 时间为null的用法  
select 1,to_date(null) from dual;


--变量列表
select * from nls_session_parameters;
select * from V$nls_Parameters where parameter='NLS_LANGUAGE';


-- 查找月份
select months_between(to_date('2016-9-10','yyyy-mm-dd'),to_date('2016-1-10','yyyy-mm-dd')) as allMonth from dual;
select months_between(to_date('2016-5-20','yyyy-mm-dd'),to_date('2016-1-10','yyyy-mm-dd')) as allMonth from dual;

-- 当前时间
select sysdate from dual;
 
--  找出今年的天数

select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual;

-- 一年的第几天
select TO_CHAR(SYSDATE,'DDD'),sysdate from dual;
 

-- round[舍入到最接近的日期](day:舍入到最接近的星期日)
select sysdate S1, round(sysdate) S2 , round(sysdate,'year') YEAR, round(sysdate,'month') MONTH , round(sysdate,'day') DAY from dual


-- trunc[截断到最接近的日期,单位为天] ,返回的是日期类型

select sysdate S1,trunc(sysdate) S2,trunc(sysdate,'year') YEAR,trunc(sysdate,'month') MONTH ,trunc(sysdate,'day') DAY from dual;        

-- 返回日期列表中最晚日期
 select greatest('2001-1-04','2020-9-04','2010-2-04') from dual;
 
-- 更新时间
select sysdate,to_char(sysdate+1*365,'yyyy-mm-dd hh24:mi:ss') as newTime from dual ;
select sysdate,add_months(sysdate,3) as newTime from dual ;
select sysdate,to_char(sysdate+1,'yyyy-mm-dd hh24:mi:ss') as newTime from dual ;
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd hh24:mi:ss') as newTime from dual ;
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual ;
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd hh24:mi:ss') as newTime from dual ;


-- 字符串截取
select substr('this is one char for test',1,5) from dual;

-- 查找子串位置
select instr('this is one char for test','char') from dual;


--字符串连接
select 'hello'||'HanMeiMei' as sayHello from dual;

select concat( 'hello','HanMeiMei') as sayHello from dual;

-- 去掉字符串中的空格
select ltrim(' this') s1,rtrim('zhangsan ') s2,trim(' lisi ') s3 from dual;

-- 去掉前导和后缀
select trim(leading 1 from 11111345345345111111) s1,trim(trailing 1 from 11111345345345111111) s2,trim(1 from 11111345345345111111) s3 from dual;

-- 字符串长度 
select length('this is test for oracle') from dual;


-- initcap(首字母变大写) ,lower(变小写),upper(变大写)
select lower('ABC') s1, upper('def') s2, initcap('efg') s3 from dual;

-- Replace
select replace('abc','b','xy') from dual;

-- translate
select translate('abc','b','qqqq') from dual;

-- lpad [左添充] rpad [右填充](用于控制输出格式)
select lpad('func',15,'=') s1, rpad('func',15,'-') s2 from dual;

-- decode[实现if ..then 逻辑]   注:第一个是表达式,最后一个是不满足任何一个条件的值
select grade_id,decode(grade_id,1,'一年级',2,'二年级',3,'三年级','无分班') from student;

-- case[实现switch ..case 逻辑]
select 
 case when grade_id=1 then '一年级' 
   when grade_id=2 then '二年级' 
    when grade_id=3 then '三年级' 
      else 'unkonwn' end
        from student;

-- 取整函数(ceil 向上取整,floor 向下取整)
 select ceil(66.6) N1,floor(66.6) N2 from dual;

-- 求余数
select mod(9,2) from dual;

-- 返回固定小数位数 (round:四舍五入,trunc:直接截断)
select round(66.667,2) N1,trunc(66.667,2) N2 from dual;

-- 返回值的符号(正数返回为1,负数为-1)
select sign(-32),sign(293) from dual;

-- to_number() 转换为数字类型
select to_number(to_char(sysdate,'hh12')) from dual;


-- nvl(ex1,ex2):ex1值为空则返回ex2,否则返回该值本身ex1(常用)
select empno,sum(sal+nvl(comm,0)) from emp group by empno;

--返回列表中第一个非空表达式
select comm,sal,coalesce(comm,sal,sal*10) from emp;

-- nvl2(ex1,ex2,ex3) :如果ex1不为空,显示ex2,否则显示ex3
select nvl2(comm,ename,'') as HaveCommName,comm from emp;

-- 分组函数; 求部门30 的最高工资,最低工资,平均工资,总人数,有工作的人数,工种数量及工资总和
select * from emp where deptno=30;
select max(sal) as maxSal,min(sal) as minSal,avg(sal) as avgSal,count(*) as TotalEMP,sum(sal) as totalSal,count(job),count(distinct(job)) from emp where deptno=30;


-- 按部门分组求最高工资,最低工资,总人数,有工作的人数,工种数量及工资总和
select max(sal) as maxSal,min(sal) as minSal,count(*) as TotalEMP,count(job) as hasJob,count(distinct(job)) as jobCount,sum(sal) as totalSal from emp group by deptno;

-- 部门30的最高工资,最低工资,总人数,有工作的人数,工种数量及工资总和 
select max(sal) as maxSal,min(sal) as minSal,count(*) as TotalEMP,count(job) as hasJob,count(distinct(job)) as jobCount,sum(sal) as totalSal from emp group by deptno having deptno=30;
 

参考文章:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html

© 著作权归作者所有

共有 人打赏支持
下一篇: JS闭包
playgame
粉丝 0
博文 26
码字总数 10272
作品 0
洛阳
QA/测试工程师
私信 提问
加载中

评论(1)

playgame
playgame
select * from student where regexp_like(student_name,'^[1-3]');

select * from student where regexp_like(student_name,'[^1-2]');
oracle9i和oracle10g多版本共存,oracle9i不能连接问题总结

oracle9i用pl/slq developer报" ORA-12154: TNS:无法解析指定的连接标识符"错误解决方案总结:机器上先后安装了oracle9i和oracle10g,安装好后,10g能用pl/sql developer正常连接,但9i总是连不上...

Samir
2013/09/12
0
0
sqlplus命令行总结

1.[oracle@zh888 ~]$ sqlplus /nolog //启动oracle数据库实例 SQL*Plus: Release 10.2.0.1.0 - Production on Sat May 11 00:29:00 2013 Copyright (c) 1982, 2005, Oracle. All rights res......

zh888
2013/05/11
0
0
oracle10g总结

1.[oracle@zh888 ~]$ sqlplus /nolog //启动oracle数据库实例 SQL*Plus: Release 10.2.0.1.0 - Production on Sat May 11 00:29:00 2013 Copyright (c) 1982, 2005, Oracle. All rights res......

zh888
2014/05/21
0
0
Oralce OMF 功能详解

OMF,全称是Oracle_Managed Files,即Oracle文件管理,使用OMF可以简化管理员的管理工作,不用指定文件的名字、大小、路径,其名字,大小,路径由oracle 自动分配。在删除不再使用的日志、数据...

yangfei86
2014/07/17
0
0
MySQL · 特性分析 · 企业版特性一览

背景 MySQL 企业版由 Oracle 公司维护,当然也是收费的。其产品类别也基本和 Oracle 数据库一致,包括标准版、企业版、集群版等。标准版包括基本的特性,价格也会比企业版便宜很多。今天和小...

阿里云RDS-数据库内核组
2015/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

新手也能看懂,消息队列其实很简单

该文已加入开源项目:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目,Star 数接近 16k)。地址:https://github.com/Snailclimb/JavaGuide. 本文内容思维导图: 消息...

阿里云官方博客
39分钟前
5
0
如何在Chrome浏览器中启动deviceready事件(尝试调试phonegap项目)?

我正在开发PhoneGap应用程序,我希望能够在Chrome中调试它,而不是在电话上调试。但是,我在onGetReady()函数中初始化我的代码,该函数在PhoneGap触发“deviceready”事件时触发。由于Chr...

kisshua
今天
9
0
nginx中部署vue打包后的静态文件

如何在nginx中部署静态资源就不描述了, 请看我的这篇博客 将vue脚手架项目打包后的静态文件放到nginx上, 发现有个问题, 即url上有#, 怎么去掉这个#呢. 1 项目中router的mode 路由的mode要为h...

克虏伯
今天
13
0
JS容易理解错误的地方

在这端代码执行的末尾,你会不会hi变量回事函数中的hi了?你会不会认为这不是按引用传递了? 对值传递和引用传递产生质疑了? 1 var hi = {};2 function sayHello(hi) { ...

器石_
今天
10
0
Java开发学习--MongoDB

之前只学过sql,第一次使用非关系型数据库。以前对于关系型数据库与非关系型数据库的概念很模糊,通过这次的学习对这两者有了一个清晰的概念。 主键 在MongoDB中,主键名叫"_id",如果在生成...

微笑向暖wx
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部