Oracle数据库常用函数总结

字符串函数:

  1. 拼接函数:concat(p1,p2) ,内容p1、p2进行无缝拼接,也可使用“||”代替
  2. 统计长度:length(p1),统计p1内容的字符串长度
  3. 补位函数:左补位:lpad(p1,n,p2),使用p2对p1进行左补位,总长度为n;右补位函数同理
  4. 大小写函数:都大写:upper(p1),内容p1字符中的字母都大写;都小写:lower(p1)内容p1字符中的字母都小写;首字母大写:initcap(p1):内容p1字符首字母大写 
  5. 截取函数:
  • trim(p1 from p2):重p2的前后截去p1,注意p1必须是一个字符
  • 左截去:ltrim(p1,p2):从p1中的左边截去含有p2的任意字符,如果要截去的字符没有了就停止截去,右截去rtrim() 同理eq:p1=‘上海自来水来自海上’p2='上海来'  返回结果:‘自来水来自’

    6.截取子串函数:substr(p1 ,start,[len])从start位开始截取,len表示截取的长度,不写len默认截取到最后,

    注意:a.start为0或者1的时候都是从头开始,b.start可以为负数,从后往前数start开始截取到最后

    7.检索函数:instr(p1,p2,[[m],[n]]),作用返回p2子串在p1中的位置(没有子串返回0)

    参数说明:m表示从p1的第m个字符开始往后检索,n表示p2出现的次数

数值函数:

    为了考虑数据库的移植和兼容的问题,oracle提供了其他的类型

oracle中的其他类型 对应oracle中的数据类型
numeric(p,s) nunber(p,s)
decimal(p,s)/dec(p,s) number(p,s)
interger/int number(38)
smallint number(38)
float number
double precision number
real number有效位19位

注:p为多少位,s小数点后几

1.四舍五入函数:round(p,s),对p进行四舍五入,保留s位小数,s可以为负数,相当于保留小数点前s位

2.截取函数:trunc(p,s),对p进行截取,保留小数点后n位

3.取余函数:mod(m,n),m对n进行取余操作

4.上下取整函数:ceil(p)/floor(p),取大于等于m的最小整数/取小于等于m的最大整数

日期操作函数:

date:日期类型,默认格式:dd=mon-rr,占用7个字节的大小,第一个字节表示世纪+100,之后几个字节分别表示年、月、日时、分、秒

timestamp:时间戳类型,最长占用11个字节的大小,前7个字节和date相同,后四个用于存放精确度,可以精确到纳秒

关键字:sysdate:返回的是当前的系统时间;systimestamp:返回的是当前的系统时间的时间戳类型

格式:yyyy年、MM/mm月、DD日  HH/hh时、mi分、ss秒AM表示上下午、day、dy表示星期。d:表示一周的第几天ddd:表示一年的第几天

注:oracle数据是不区分大小写的

    1.to_char(p1,fmt):将p1按照fmt的格式进行显示(通常使用在查询语句)

    2.to_date(p1,fmt):按照fmt的格式,把字符串变成日期类型(通常使用在增加和修改语句)

    3.last_day(p1):查询p1所在月的最后一天

    4.add_months(p1,n):查看p1之后n个月的日期,n可以是正数,也可以是负数,小数(会自动进行截取)

    5.months_between(p1,p2):计算p1,p2之间相差的月数,结果可能是正数、小数、负数

    6.next_day(date,num):计算某个日期到下个周周几的时间,num的范围为1~7表示周日到周六

    7.extract(分量 from date):提取date中的分量,分量有year、month、day、hour、minute、second

注:其中date类型可以提取 前三个分量,timestamp可以提取全部的分量

    8.least(p1,p2,……)/greatest(p1,p2,……)比较多个参数,最小/最大值,参数的类型相同或者是可以默认转换成相同类型的类型

空值处理函数:

    1.nvl(p1,p2):如果p1值为null,就会使用p2,不为空则为自身的值

    2.nvl2(p1,p2,p3):如果p1为null使用p3,不为空使用p2

猜你喜欢

转载自blog.csdn.net/lg_49/article/details/79717491