概念:
是oracle提供的进一步修饰或者处理数据的方法
使用:
直接使用
分类:
字符函数
数值函数
字符函数:select 字段名,函数名(字段名),字段名...from 表名
特点:1.不改变数据只是对数据进行修饰
2.可以和字段混合使
---查看所有的员工信息,员工姓名小写lower(0函数 select empno,lower(ename),job from emp; select ename,'HH' from emp; --- 查看表中所有员工的姓名首字母大写的信息 INITCAP()函数 select empno,INITCAP(ename),job from emp;伪表:不是真实存在的表,是为了方便数据验证临时存在的表(dual表为伪表名)
作用:
对查询的数据进行统计
使用:
select 多行函数名(字段名),多行函数名(字段名)........from 表名
注意:
多行函数不能喝普通的字段以及单行函数连用,除非分组
max(字段名) 返回该字段的最大值
min(字段名) 返回该字段的最小值
sum(字段名) 返回该字段的和
count
count(*)返回表中的记录数
count(字段名) 返回非空值得数量
count(distinct)
---多行函数学习(max,min,avg,sum,count) --查询员工的最低工资 select min(sal) from emp; --查看员工的平均工资 select avg(sal) from emp; -- 查看所有员工的工资之和 select sum(sal) from emp; -- 查询公司多少员工 select count(*) from emp; -- 查看需要津贴的员工人数 select count(comm) from emp; -- 查询公司有多少工作种类 select distinct job from emp; select count(distinct job) from emp; select count(*),sum(sal),avg(sal),max(sal) from emp;-----------------------字符和数值的互转------------------------------------- -----字符串转换 ---指定显示格式 ---$表示位置占位,列入999,999,999会将数字按照三个一个组用哪个逗号隔开 ---L表示人民币,$为美刀 --- 0也可以表示占位,但是如果真实数据位数不足,会使用0进行占位 select to_char(12345,'$999,999,999') from dual; select to_char(12345,'L999,999,999') from dual; ---查看工资大于2000的员工信息 ----数值和字符之间的转换可以隐式转换,to_number可以省略不写 select * from emp where sal>to_number('2000'); select * from emp where sal>'2000'; ---------------------日期和字符之间的互转---------------------------------- ----字符转换成日期char---->date --使用to_date('要转换的字符,日期格式')函数把字符转化成日期 --注意1:字符必须符合日期合适 --注意2:oralce默认的转化格式为日月年,例如:'01-1月-1982 --常用日期格式yyyy--mm--dd --查询员工入职日期在82年以后的 select * from emp where hiredate>to_date('1982-01-01','yyyy-mm-dd'); ----日期转化成字符 ----使用: ----新增数据使用to_date() ---查询数据使用to_char() ---常见格式: ----yyyy-mm-dd ---yyyy/mm/dd ---yyyy"年"mm"月"dd"天" ---使用to_char('要转化的日期') select to_char(hiredate) from emp;---使用默认格式把日期转化成字符 select to_char(hiredate,'yyyy-mm-dd') from emp;----使用指定的格式转化 select to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp; --------------------------------其他函数-------------------------------------- ---nvl(字段名,新的值): 如果字段名为null,则返回该字段的值,否则返回新的值 ---nvl2(字段名,处理1,处理2):如果字段值不为bull,执行处理1,fouze执行处理2 ---decode(字段名,值1,处理1,值2,处理2,值3,处理3,处理4)if elseif else ---查询员工的工资信息 select ename,job,sal from emp; ---查询员工的薪水 select ename,job,sal+nvl(comm,0) from emp; select ename,job,sal+nvl2(comm,sal+comm,sal) from emp; --- 显示员工的职称 select ename,job,decode(job,'MANAGER','经理','SALESMAN','销售','普通员工') from emp;