操作数据库:最快的是sql语句
1.字符函数
select lower('Hello World') 转小写 , upper('hello world ') 转大写,initcap('hello world') 首字母大写 from dual;
2.字符控制函数
substr(a,b) 从a中第b位开始取 select sub('123457890' ,2) 子串 from dual;
substr(a,b,c) 从a中第b位开始取c位
instr(a,b) 从a串中找b 找到返回位置 从1开始 select instr('Hello world' ,'ll') 位置 from dual;
length 字符数 lengthb 字节数 select length("aaaaa") 字符数 from dual;
lpad左填充 rpad 右填充 select lpad('abc',10,'*') 左填充,rpad('abc','10','_') 右填充 from dual;
trim() select trim('H' from 'Hello WorldH') from dual;
replace() select replace('hello world','l','*') from dual;
3.数字函数
round(45.761, 2) 45.76 round(45.761, -2) 0 四舍五入
trunc(45.761, 2) 45.76 trunc(45.761, -1) 40 截断
mod(1600,300) 100 求余
4.日期
mysql 中 有time 和datetime oracle中只有date(包含日期和时间)
查询当前时间 sysdate select sysdate from dual; 默认格式是 DD-MON-RR
格式化 to_char select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
5.日期的数学运算
1)在日期上加上或减去一个数字(单位是天)结果仍为日期
select sysdate-1 昨天,sysdate 今天,sysdate+1 明天 from dual;
2)日期可以相减,不能相加
举例说明:计算员工的工龄:天 星期 月 年
select ename 名字,hiredate 入职日期,sysdate-hiredate 天,months_between(systdate,hiredate) 月 from dual;
6.日期函数
months_between 两个日期相差的月份
add_months 向指定日期中加上若干月数
last_day本月的最后一天
next_day 下一个星期日 select next_day(sysdate,'星期二') from dual;应用在每个星期一自动备份数据...分布式数据库 快照 触发器
round() round(sysdate,'MONTH') round(sysdate,'year')
trunc()
7.转换函数
1)数据类型的转换
a.隐士数据类型转换
b.显式数据转换
to_char 函数 对日期的转换 to_char(date,'format_model')
select to_char(sysdate,'yyyy-mm-dd hh24:mi;ss"今天是"day') from dual;
to_char 函数 对数字的处理
to_char(number,'format_model')
查询员工薪水 (两位小数,千位符,本地货币代码)
select to_char(sal,'L9,999.99') from emp;
反过来就是to_number to_date
8.通用函数(适用于任意数据类型,同时也适用于空值)
nvl(expr1,expr2)虑空
nvl2(expr1,expr2,expr3)虑空
nullif(expr1,expr2) 当expr1等于expr2的时候返回null,不等就返回expr1
coalesce(expr1,expr2,expr3,...) 返回第一个不为空的值
9.条件表达式
需求:根据员工的职位涨工资,返回涨之前和涨之后的工资
case
decode oracle 自己的函数