字符串函数:
- 拼接函数:concat(p1,p2) ,内容p1、p2进行无缝拼接,也可使用“||”代替
- 统计长度:length(p1),统计p1内容的字符串长度
- 补位函数:左补位:lpad(p1,n,p2),使用p2对p1进行左补位,总长度为n;右补位函数同理
- 大小写函数:都大写:upper(p1),内容p1字符中的字母都大写;都小写:lower(p1)内容p1字符中的字母都小写;首字母大写:initcap(p1):内容p1字符首字母大写
- 截取函数:
- 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