Oracle中定义的函数
1.字符函数
select lower('HELLO WORD')from dual; hello word ------大写转小写
select upper('hello word')from dual; HELLO -----WORD 小写转大写
select initcap('leo')from dual; Leo -----首字母转大写
select instr('hello','o')from dual; 5 -----找字符下标 相当于indexOf
select lpad('9641',11,'*')from dual; *******9641 -----左填充lpad('字符串',填充后长度,'填充字符')
select rpad(‘430’,18,'*')from dual; 430**************-----右填充
select substr('hello word',3)from dual; llo word -----截取 从3开始截取到最后
select substr('hello word',3,5)from dual; llo w ---从3开始截取五个字符的长度
select replace('hello','l','*')from dual; he**o --替换
select replace(replace('豆豆爱学习,'学习','睡觉'),'睡觉','学习')from dual;
-- 豆豆爱学习 -----函数可嵌套使用
2.数学函数
select round(45) from dual; 45 -----四舍五入
select round(45.6)from dual; 46
select round(3.1415926,2) from dual; 3.14 -----留两位小数
select round(23.58,-1)from dual; 20 ---留一个十位数,3被舍去
select trunc(23.58,0)from dual; 23 --不四舍五入,留0位小数
select mod(10,3)from dual; 1 -----取模函数 10/3余1
3.日期函数
select to_char(sysdate,'yyyy-mm-dd')from dual; 2019-08-30 ----将日期转字符
select MONTHS_BETWEEN(sysdate,hirdate)from emp; 23 ---计算月差
select last_day(sysdate)from dual; 2019-08-31 ---某个月的最后一天
select unmber('2019') from dual; 2019 ---转数字
--日期不允许日期加日期 可加数字,不可超过9999
Oracle锁机制
悲观锁 – 乐观锁 – 死锁
悲观锁:将数据的一张表的数据看作是都需要上锁的操作(行级锁)
select * from emp where ename=7369 for update;
–for update 加锁
–解锁:rollback 抒放锁,事务回滚/commit 提交
乐观锁:在表中加字段,代表表中数据的版本号。
版本号:为1时,说明是最初的数据。为2时,说明有人对数据进行了改动…
版本号需要自己手动添加修改。
版本号一致时,不需要提交事务。
死锁:解决:重启服务器。