函数表达式:
2. 多行函数  多条记录返回一个结果
  也称为: 组函数、聚集函数
sum() 求总和
avg()  平均值
count()  统计记录的条数
max()  求最大值
min()  求最小值
1. 单行函数: 根据处理的不同的数据类型进行分类:
2. (1)  字符处理函数  char  varchar2  varchar
Oracle函数              Java方法
length()  字符串长度      length()
lower()  大写变小写    toLowerCase()
upper()  小写变大写      toUpperCase()
substr()  求子串          substring()
例子1: 查询出42部门的员工的名字(原样,全小写,全大写)
select first_name, lower(first_name),upper(first_name) from s_emp where dept_id=42;
经常借助于虚表dual进行函数的测试: 单行单列  算一次
select lower('ABC')from dual;
例子2:出每条记录first_name最后两个字符
Mark  rk
Carman  an
思路: 使用函数substr()求子串
解法一: 第一个参数: 处理的字段名
      第二个参数: 正数  表示从正数标号开始  起始1 (数据库从1开始, java0开始)
      第三个参数: 表示取几个字符
select first_name,  substr(first_name,length(first_name)-1 ,2)    from s_emp;
说明: 函数可以嵌套调用
解法二第一个参数: 处理的字段名
        第二个参数: 负数  表示从倒数的第几个开始
        第三个参数: 表示取几个 
select first_name,  substr(first_name,-2 ,2)
from s_emp;
(2)数值处理函数  number
round  四舍五入  select round(45.926,-1)  from dual; --50
trunc 截取    正数表示保留小数点后几位,负数表示截取小数点前几位
select trunc (45.926,-1)  from dual; --40
例子3: select round(45.926,2) from dual;
ROUND(45.926,2)
---------------
          45.93          保留小数点后两位  四舍五入
(3) 日期处理函数  date
日期类型  date  保存一个时刻  时间点
底层存储: 是一个长整数  Java: long  毫秒数
    1979110   某个时间点的毫秒数
Unix发布的时间
日期类型存储的信息: 世纪、年、月、日、时、分、秒
常用的日期格式:
标准的日期格式: yyyy mm dd  hh24:mi:ss
                yyyy–mm-dd  hh24:mi:ss
默认格式: DD-MON-RR
           
如果是英文环境: 01-JAN-13
      中文环境: 01-1-13  (目前本地环境)
如何查看当前系统的时间? sysdate
select sysdate from dual;
如何修改当前日期格式? 可以改变会话Session
改变会话session,将日期格式修改为标准格式:
alter session
set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;
日期的运算:
1    单位:
select sysdate-1,sysdate,sysdate+1
from dual;
练习: 求出当前时间10分钟以后的时间
分析: 1/24/60  1/144 
    可读性好
select sysdate,sysdate+1/24/60“10分钟以后”from dual;
例题4: 查出员工的入职日期
思路: s_emp表  first_name  start_date
字符串截取第几行select first_name,start_date from s_emp;
----------------------------------------------------------------------------------------------------------------------
to_char函数:  能够将日期数据按照我们指定的格式将date数据转化为char数据,  便于显示.
语法: to_char(日期数据,’日期格式’)
    to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;
select first_name,start_date, to char(start_date, ‘yyyy-mm-dd hh24:mi:ss’) from s_emp;
例子4: 出哪些员工是三月份入职的?
思路: select first_name, start_date from s_emp
where to_char(start_date,’mm’) = ‘03’;
‘03’ = 3 隐式类型转换  ‘03’ 先转化为3;再加3比较,不推荐使用, 原因: 会造成某些索引使用不了  降低效率
例子5: 如何插入日期类型的数据  date
方式一: 隐式类型转换  ’01-1月-13’
      将满足当前格式的日期字符串date
      ‘DD-MON-RR’
注意: 日期字符串的格式必须和当前会话格式相同

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。