Oracle函数

 这里是Oracle函数,只在Oracle数据库里面有用

        第五节课:函数学习
				--查询工作为SALESMAN,MANAGER并且工资大于2500的员工信息
				--1、使用小括号提升where筛选条件的执行优先级别
				--2、and的优先级别高于or
				select * from emp 
				select * from emp where job='SALESMAN' or job='MANAGER' and sal>2500
				select * from emp where (job='SALESMAN' or job='MANAGER') and sal>2500
				-----------------------------------------------------------------------------------------------------------
				使用函数 单行函数 多行函数 转换函数 其他函数
				--单行函数学习:不改变原始数据,只改变结果
				---1、字符函数
				select * from emp;
				select INITCAP(ename) from emp;--initcap函数将首字母大写
				select lower(ename)from emp;--lower 字母小写
				select replace(ename,'S','M')  from emp;--replace 替换
				--2、数值函数--Math
				----伪表 dual
				select * from dual
				select abs(-3) 绝对值,ceil(3.1415926)向上取整,floor(3.1415926)向下取整,power(2,3)幂,round(3.4)四舍五入 from dual
				--3、日期函数
				select months_between('13-12月-2016','13-10月-2016') from dual--months_between两个日期之间的月份数
			第六节课:多行函数学习
				多行函数 :
				  max: max(字段名) 返回此字段的最大值
				  min:min(字段名) 返回此字段的最小值
				  avg:avg(字段名) 返回平均值
				  sum:sum(字段名) 返回字段的和
				  count:count
							--count(*),用来查询表中有多少条记录
							--count(字段名),用来查询某个字段有值的个数
							--count(distinct 字段名),可以先去除重复再计数。
				  注意:
					   --多行函数不能和普通字段直接出现在查询语句中,除非group by 
					   --多行函数和单行函数不能直接出现在查询语句中,除非group by        
				查看员工的最高工资
					select max(sal),ename from emp--多行函数不能和普通字段直接出现在查询语句中,除非group by
					select max(sal),lower(ename) from emp--多行函数和单行函数不能直接出现在查询语句中,除非group by
					select ename from emp
				查看员工的最低工资
					select min(sal) from emp
				查看员工的平均工资
					select avg(sal) from emp
				查看所有的员工工资之和
					select sum(sal) from emp
				查询公司有多少员工
					select * from emp
					select count(*) from emp--使用count(*)来查看一张表中有多少条记录
				查询有津贴的员工人数
					select count(comm) from emp--使用count(字段名),查询该字段有值的记录数
					select count(ename) from emp
				查询公司有多少工作种类
					select count(job) from emp
					select  count(distinct job) from emp 
========================================================================================================================================			
		第三天:
			第一节课:转换函数学习
				转换函数:在转换的时候改变的是数据的类型,数据内容不会改变,可以指定格式。
				1、to_number:将数字字符转换为数字类型的数值,to_number(数字字符)
				2、to_char:将数字转换为字符类型,将日期转换为字符类型 to_char(数字/日期)
				3、to_date:将字符类型的日期转换为日期类型: to_date(char)
				--------------------------------------------------------------------------------------
				number-->char 转换的时候使用的是默认格式,
					select  to_char(123) from dual--将数字转换为字符类型,使用to_char(number)
					select sal, to_char(sal) from emp
				number-->char 使用指定的格式 
					to_char(number,'格式'),格式:
							$代表美元符,9代码数字占位。例如,L999,999,999表示三位一组的显示方式L代表人民币符号,0代表保留数字个数,不足使用0补充。
															 
							select to_char(sal),to_char(sal,'L999,999,999') from emp
							select to_char(sal),to_char(sal,'L0000.00') from emp
				char--->number  to_number(数字字符)
							select to_number('123') from dual
				
				char--->date,转换的字符必须是日期格式的字符串,默认格式 dd-mm-yyyy
							注意:因为字符串有很多,所以在字符转换为日期的时候,需要指定格式,因为日期是具备一定格式的字符组合。
								字符转换为日期的时候,指定的格式为字符的日期顺序,无需指定间隔符。
								yyyy:表示年  mm:表示月   dd表示日
							select to_date('05-12月-2016') from dual;
							select to_date('2016-05-12','yyyy-mm-dd') from dual--使用指定的格式将指定的日期字符串转换为日期
							select to_date('12-05-2016','mm/dd/yyyy') from dual
				date--->char
							注意:因为日期本身就具备一定的格式在不是指定格式的情况下会默认使用dd-mm-yyyy格式显示数据
								指定的格式会作为日期转换为字符串类型的显示格式存在。例如:
								yyyy-mm-dd'   ‘2016-12-05’
								yyyy/mm/dd'    '2016/12/05'
								yyyy"年"mm"月"dd"日"'     2016年12月05日
							select hiredate,to_char(hiredate) from emp--日期转换为字符的时候,不指定格式使用默认格式:dd-mm-yyyy
							select hiredate,to_char(hiredate,'yyyy-mm-dd') from emp;--使用指定格式将日期转换为字符串类型
							select hiredate,to_char(hiredate,'yyyy/mm/dd') from emp;--使用指定格式将日期转换为字符串类型
							select hiredate,to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp;--使用指定格式将日期转换为字符串类型
							
							查询入职日期在81年10月20日后的员工信息
								第一种:自动转型
							select * from emp where hiredate>'20-10月-1981'
								第二种:将日期转换为字符串
							select * from emp where to_char(hiredate,'yyyy-mm-dd')>'1981-10-20'
								第三种:
							select * from emp where hiredate>to_date('1981-10-20','yyyy/mm/dd')
			第二节课:其他函数:
				单行函数:lower
				多行函数:min max sum avg count
				转换函数:to_number to_char to_date
				-----------------------------------------------------------------------------------------
				其他函数:
看到这里了					1、nvl():nvl(字段名,执行)--相当于java中的if条件判断
					2、nvl2():nvl2(字段名,值,值)--相当于java中的If(){}else{}判断
					3、decode():decode(字段名,条件1,执行内容1,条件2,执行内容2,条件3,执行内容3,默认执行内容)
					相当于java中if(){}else if(){}else if(){}...else{}
				查询所有员工的月薪及姓名和工作
					select * from emp
					select ename,sal 基本工资,comm 绩效,sal+comm 月薪 from emp
					select ename,sal 基本工资,comm 绩效,sal+nvl(comm,0)月薪 from emp
				查询所有员工的月薪及姓名和工作
					select ename,sal 基本工资,comm 绩效,nvl2(comm,sal+comm,sal)月薪 from emp
				显示员工的职称
					select ename,job,decode(job,'MANAGER','经理','SALESMAN','销售人员','普通员工') from emp

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值