目录
账号
超级管理员sys ,默认密码:change_on_install
普通管理员system 密码 manager
用户: scott 密码 tiger
这里用户sys的权限是非常高的,可以打开关闭oracle数据库,它的权限是高于其他用户的(其他用户信息肯定保存在oracle数据库中)
数值函数
每个数据库内置函数都不相同,一般放在别的数据里不好用
- round(number[,decimals])函数:
四舍五入
number:待做截取处理的数值
decimals:指明需保留小数点后面的位数。
- trunc(number,num_digits)函数:
截取函数
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
注意:不进行四舍五入
- mod(m,n)
取余函数
字符函数
注意:和SQLServer不同,oracle对大小写敏感!
- substr(string string, int a, int b)函数:
取子串。从a开始,取长度为b的字符串。默认b是取到最后。有点像C++里面的<string>
- instr(string1, string2)函数:
一个串在另外串里的位置。string1是源字符串, string2是目标字符串。
instr(string1, string2,int a)找第a个string2
instr(string1, string2,int a,int b)找第a个字符之后出现的第b个string2
- length()函数:
返回长度
select length('汉字')
from dual
结果:2
select lengthb('汉字')
from dual
结果:4
- trim(),ltrim(),rtrim()
去字符串左右两边的空格或指定字符
select trim(' r f ')
from dual
结果:r f
select trim('m' from 'mmrmfmm')
from dual
结果:rmf
selsct trim(leading 'm' from 'mmrmfmm')
from dual
结果:rmfmm
- initcap()函数:
首字母大写。所有的单词首字母大写,就像文章的题目一样。
- lower(string)函数:
转成小写字母。
日期
默认格式:DD-MON-RR
DD和RR表示阿拉伯数字
英文环境MON为月份英语缩写
汉语环境为汉语
日期运算
SYSDATE获取系统时间
加减运算:日期+数字是增加天数,如:SYSDATE+1是明天的日期
但是日期+日期是非法的;日期-日期是和合法的,返回相差的天数
select SYSDATE-('01-1月-00')
from dual
结果:报错,日期不能减字符串
select SYSDATE-to_date('01-1月-00')
from dual
结果:系统时间和01年1月1日相差的天数
日期函数
- ADD_MONTHS()函数
ADD_MONTHS(‘starting_date’,number_of_months)
一个日期加几个月,注意一个月31日加一个月的情况。
SELECT ADD_MONTHS(TO_DATE('01/31/2007','MM/DD/YYYY'),1)
FROM dual
结果:2007/2/28
- LAST_DAY()函数
LAST_DAY(‘date’)
一个月的最后一天
- MONTHS_BETWEEN(later_date,earlier_date)
两个日期的间隔几个月
- next_day()函数
下一个日期
可以是数字、日期
select next_day(SYSDATE,'星期一')
from dual
结果:今天之后的下一个星期一
select next_day(SYSDATE,2)
from dual
结果:今天之后的下一个星期的第二天
其他函数
- NVL()函数
NVL(input_value,result_if_value_is_null)
input_value通常是某个列名。若该值为空,则用第二个值覆盖。
注意:两个参数的数据类型必须是一样的,否则会报错。使用时可以先进行类型转换。
- nvl2()函数
nvl2(input,value1,value2)
如果表达式input不是空值,则返回value1值;否则返回value2值。 和C++中的三目运算符有点像。
注意:后两个参数数据类型相同
转换函数
oracle中的数据类型转换
- to_date()函数
TO_DATE(input_value,’format_code’) 字符串转日期
例如
to_date('81-01-01','rr-mm-dd')
结果:由字符串变成日期类型81年1月1日
年份用rr和yy表示有所不同:年用rr表示离现在最近的年份;年用yy表示表示当前世纪的年份。一般使用rr更合理一些。
原因:之前的千年虫问题,2038年1月也会出现千年虫问题
- to_char()函数
TO_CHAR(input_value,’format_code’) 转字符,第二个参数是转换的格式
功能比较强大,例子:
select hiredate
from emp
where to_char(hiredate,'dd') < 15
结果:雇佣日期在15号之前的
select to_char(sal,'999999.99l')
from emp
结果:员工工资,l表示当地货币符号
- to_num()函数
转数字。只有数字才能转,字母等会报错。