数据库程序设计 oracle数据库1

目录

账号

数值函数

字符函数

日期

日期运算

日期函数

其他函数

转换函数


账号

超级管理员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()函数

        转数字。只有数字才能转,字母等会报错。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章