oracle函数

**创建序列(默认从1开始,每次加1)**
create sequence teacher_seq;
select teacher_seq.nextval from dual;
select teacher_seq.currval from dual;

create table teacher(id number,name vrachar2(32),pwd varchar2(32),primary key(id));
insert into teacher(id,name,pwd) values(teacher_seq.nextval ,'zs','123');
insert into teacher values(teacher_seq.nextval ,'ls','456')

**创建序列规则从100开始,每次加1**
create sequence teacher_seq2 start with 100;
select teacher_seq2.nextval from dual;

**创建序列规则:从5开始,到100,超出最大值后无法创建。**
create sequence teacher_seq3 minvalue 5 maxvalue 100;
select teacher_seq3.nextval from dual;

**创建序列规则:从1开始,每次数字加3**
create sequence teacher_seq4 increment by 3;
select teacher_seq4.nextval from dual;


**更改表中数据**
update teacher set pwd='123456' where id=4;
update teacher set pwd='654321', name='lss'  where id=5;


select * from teacher;
insert into teacher values(teacher_seq.nextval,'ww','321456');
insert into teacher values(teacher_seq.nextval,'yangbailao','321456');
 

lpad补齐函数,补齐6位,空位用0来补(lpad:的l是left,从左边补)//超过6位的话,会截取
select * from teacher;
select lpad(id,6,'0') from teacher;
从右边开始补
select rpad(name,6,'-') from teacher;

字符函数

函数                                        说明
ASCII                                     返回对应字符的十进制值
CHR                                       给出十进制返回字符
CONCAT                                拼接两个字符串,与 || 相同
INITCAT                                 将字符串的第一个字母变为大写
INSTR                                    找出某个字符串的 位置
INSTRB                                  找出某个字符串的 位置 和 字节数
LENGTH                                以字符给出字符串的长度
LENGTHB                              以字节给出字符串的长度
LOWER                                 将字符串转换成 小写
LPAD                                      使用指定的字符在字符的 左边填充
LTRIM                                    在左边裁剪掉指定的字符
RPAD                                     使用指定的字符在字符的 右边填充
RTRIM                                   在右边裁剪掉指定的字符
REPLACE                              执行字符串搜索和 替换
SUBSTR                                取字符串的子串
SUBSTRB                             取字符串的子串(以字节)
SOUNDEX                            返回一个同音字符串
TRANSLATE                         执行字符串搜索和 替换
TRIM                                     裁剪 掉前面或后面的字符串
UPPER                                  将字符串变为 大写
**字符操作:
大写**

select upper(name) from teacher;

**先大写后小写**
select lower(upper(name)) from teacher;

**首字母大写(原来大写的会变成小写,只剩下首字母大写)**
select initcap(name) form teacher;

**求字符串长度(length)**
select id,length(id),name,length(name) from teacher;

**字符串截取substr(包含起始位(0.1一样),截取长度)**
select id,name, substr(name,0,3) from teacher;
 z   l   l 
0/1  2   3
-3  -2  -1


**查找指定字符串位置instr,并返回,没有为0**
select * from teacher;
(从name里面找寻a,返回位置,没有为0)
select name,instr(name,'a') from teacher;
(从第三位往后找,返回位置,没有为0)
select name,instr(name,'a',3) from teacher;

**字符反转reverse(good-doog)**
select name,reverse(name) from teacher;

**字符拼接concat**
select name,concat('hello:',name) from teacher;

**去除字符串两边的空格trim;**
select trim('  hello java  ')from dual;
//hello java

**ltrim去左边空格;
rtrim去右边空格;**

**字符串替换replace(把name里的a替换成x)**
select  name from teacher;  
select name,replace(name,'a','x')from teacher;
(a.g-以a起始,.:中间有一位,以g结尾)
select name,regexp_replace(name,'a.g','x') from teacher;

数值函数

函数                                                    说明
ABS(value)                                    绝对值
CEIL(value)                                    大于或等于 value 的最小整数
COS(value)                                    余弦
COSH(value)                                 反余弦
EXP(value)                                    e 的 value 次幂
FLOOR(value)                               小于或等于 value 的最大整数
LN(value)                                       value 的自然对数
LOG(value)                                    value 的以 10 为底的对数
MOD(value,divisor)                        求模
POWER(value,exponent)               value 的 exponent 次幂
ROUND(value,precision)                按 precision 精度 4 舍 5 入
SIGN(value)                                    value 为正返回 1,为负返回 -1,为零返回 0.
SIN(value)                                       余弦
SINH(value)                                    反余弦
SQRT(value)                                   value 的平方根
TAN(value)                                      正切
TANH(value)                                   反正切
TRUNC(value,precision)                 按照 precision 截取 value
VSIZE(value)                                  返回 value 在 ORACLE 的存储空间大小

**数值
round四舍五入**

select round(123.456,2)from dual;//123.46
select round(123.454,2)from dual;//123.45
**ceil向上取整**
select ceil(123.45)from dual;//124
**floor向下取整**
select floor(123.45)from dual;//123

**取模mod**
select mod(32,7)from dual;//4
select mod(30,6)from  dual;//0

**绝对值abs**
select abs(128)from dual;//128
select abs(-128)from dual;//128

**判断返回(1,-1,0)**
select sign(-12) from dual;//-1
select sign(0) from dual;//0
select sign(9) from dual;//1

**开根号sqrt**
select sqrt(9) from dual;//3

**算几次方power(2的3次方)**
select power(2,3) from dual;//8

**保留小数几位trunc(不四舍五入)**
select trunc(1234.5678,3)from dual;//1234.567

**将数字转换为字符串to_char**
select to_char(123.45,'000.00')from dual;//123.45
select to_char(123.45,'0,000.000')from dual;//0,123.450
select to_char(123456.45,'$000,000.000')from dual;//$123,456.450

create table T_DATE(
id number,
d1 date,
d2 timestamp
);

日期函数

函数                                                                     说明
ADD_MONTHS                                            在日期 date 上增加 count 个月
GREATEST(date1, date2, . . .)                    从日期列表中选出最晚的日期
LAST_DAY( date )                                       返回日期 date 所在月的最后一天
LEAST( date1, date2, . . .)                           从日期列表中选出最早的日期
MONTHS_BETWEEN(date2, date1)           给出 date2 - date1 的月数(可以是小数)
NEXT_DAY( date, ‘day’)                              给出日期 date 之后下一天的日期,这里的 day 为星期,如:MONDAY、Tuesday等。 
NEW_TIME(date, ‘this’, ‘other’)                    给出在 this时区 = Other时区 的日期和时间
ROUND(date,’format’)                                  未指定 format 时,如果日期中的时间在中午之前,则将日期中的时间截断为 12 A.M(午夜,一天的开始),否则进到第二天。
TRUNC(date,’format’)                                   未指定 format 时,将日期截为 12 A.M(午夜,一天的开始)

select * from t_date;
insert into t_date(id,d1,d2) values(1,sysdate,systimestamp);

select * from t-date;

select d1,add_months(d1,1)from t_date where id=1;
**//d1日期的这个月最后一天**
select last_day(d1) from t_date where id=1;
**//下个月**
select last_day(add_months(d1,1)) from t_date where id=1;

select sysdate from dual;
select systimestampfrom dual;

**按日期**
select trunc(sysdate),sysdate from dual;
**按当年第一天**
select trunc(sysdate,'yyyy'),sysdate from dual;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值