數據庫程序設計 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()函數

        轉數字。只有數字才能轉,字母等會報錯。

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