函数
1,字符函数
substr(字符串名,起始位置,截取长度):
截取字符串
instr(字符串名,字符):
相当于indexof,不存在返回0
length: 返回字符串长度
concat: 连接两个字符串
lpad(字符串,总长度,填充符):
从左边对字符串使用指定的字符进行填充
rpad(字符串,总长度,填充符):
从右边对字符串使用指定的字符进行填充
2,日期函数
months_between(sysdate,hiredate)
系统日期与雇佣日期求差,得到月的个数
add_months(hiredate,5)
在雇佣日期的基础上增加5个月
next_day(hiredate,4)
下个星期三
3,转换函数
nvl(a,b)
将参数a置b
to_char(hiredate,'yyyy-mm-dd hh24:mi:ss')
将雇佣日期转成指定格式的字符串,
不加24就是12小时制,格式串不必全写
--varchar2可以直接做加减法,但性能极低
--所以用to_number
to_number(有数值意义的字符串)
to_date(字符串,日期格式)
将字符串转成指定格式的日期
round(数值型变量,精确位数)
四舍五入,精确位数若为正,则保留几位小数,可用于日历
trunc(数值型变量,精确位数)
直接从指定地方截断,可用于日历
4,组函数(聚合函数)
1,min(该组中指定项)
2,max(该组中指定项)
3,sum(该组中该组中指定项)
4,count(该组中指定项)
5,avg(该组中指定项)
分组
--按谁分组只能显示谁
--分组中能正常显示的列一定是分组条件
~~~语句顺序问题
--where 发生在分组之前 条件 不能使用直接使用组函数
可以在嵌套子查询中使用
--group by
--having 在分组之后 条件 可直接使用组函数
--order by
substr(字符串名,起始位置,截取长度):
截取字符串
instr(字符串名,字符):
相当于indexof,不存在返回0
length: 返回字符串长度
concat: 连接两个字符串
lpad(字符串,总长度,填充符):
从左边对字符串使用指定的字符进行填充
rpad(字符串,总长度,填充符):
从右边对字符串使用指定的字符进行填充
2,日期函数
months_between(sysdate,hiredate)
系统日期与雇佣日期求差,得到月的个数
add_months(hiredate,5)
在雇佣日期的基础上增加5个月
next_day(hiredate,4)
下个星期三
3,转换函数
nvl(a,b)
将参数a置b
to_char(hiredate,'yyyy-mm-dd hh24:mi:ss')
将雇佣日期转成指定格式的字符串,
不加24就是12小时制,格式串不必全写
--varchar2可以直接做加减法,但性能极低
--所以用to_number
to_number(有数值意义的字符串)
to_date(字符串,日期格式)
将字符串转成指定格式的日期
round(数值型变量,精确位数)
四舍五入,精确位数若为正,则保留几位小数,可用于日历
trunc(数值型变量,精确位数)
直接从指定地方截断,可用于日历
4,组函数(聚合函数)
1,min(该组中指定项)
2,max(该组中指定项)
3,sum(该组中该组中指定项)
4,count(该组中指定项)
5,avg(该组中指定项)
分组
--按谁分组只能显示谁
--分组中能正常显示的列一定是分组条件
~~~语句顺序问题
--where 发生在分组之前 条件 不能使用直接使用组函数
可以在嵌套子查询中使用
--group by
--having 在分组之后 条件 可直接使用组函数
--order by