函数表达式:
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开始, java从0开始)
第三个参数: 表示取几个字符
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 毫秒数
从1979年1月1日0点 到 某个时间点的毫秒数
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小时内删除。
发表评论