Oracle數據庫常用函數總結

字符串函數:

  1. 拼接函數:concat(p1,p2) ,內容p1、p2進行無縫拼接,也可使用“||”代替
  2. 統計長度:length(p1),統計p1內容的字符串長度
  3. 補位函數:左補位:lpad(p1,n,p2),使用p2對p1進行左補位,總長度爲n;右補位函數同理
  4. 大小寫函數:都大寫:upper(p1),內容p1字符中的字母都大寫;都小寫:lower(p1)內容p1字符中的字母都小寫;首字母大寫:initcap(p1):內容p1字符首字母大寫 
  5. 截取函數:
  • trim(p1 from p2):重p2的前後截去p1,注意p1必須是一個字符
  • 左截去:ltrim(p1,p2):從p1中的左邊截去含有p2的任意字符,如果要截去的字符沒有了就停止截去,右截去rtrim() 同理eq:p1=‘上海自來水來自海上’p2='上海來'  返回結果:‘自來水來自’

    6.截取子串函數:substr(p1 ,start,[len])從start位開始截取,len表示截取的長度,不寫len默認截取到最後,

    注意:a.start爲0或者1的時候都是從頭開始,b.start可以爲負數,從後往前數start開始截取到最後

    7.檢索函數:instr(p1,p2,[[m],[n]]),作用返回p2子串在p1中的位置(沒有子串返回0)

    參數說明:m表示從p1的第m個字符開始往後檢索,n表示p2出現的次數

數值函數:

    爲了考慮數據庫的移植和兼容的問題,oracle提供了其他的類型

oracle中的其他類型對應oracle中的數據類型
numeric(p,s)nunber(p,s)
decimal(p,s)/dec(p,s)number(p,s)
interger/intnumber(38)
smallintnumber(38)
floatnumber
double precisionnumber
realnumber有效位19位

注:p爲多少位,s小數點後幾

1.四捨五入函數:round(p,s),對p進行四捨五入,保留s位小數,s可以爲負數,相當於保留小數點前s位

2.截取函數:trunc(p,s),對p進行截取,保留小數點後n位

3.取餘函數:mod(m,n),m對n進行取餘操作

4.上下取整函數:ceil(p)/floor(p),取大於等於m的最小整數/取小於等於m的最大整數

日期操作函數:

date:日期類型,默認格式:dd=mon-rr,佔用7個字節的大小,第一個字節表示世紀+100,之後幾個字節分別表示年、月、日時、分、秒

timestamp:時間戳類型,最長佔用11個字節的大小,前7個字節和date相同,後四個用於存放精確度,可以精確到納秒

關鍵字:sysdate:返回的是當前的系統時間;systimestamp:返回的是當前的系統時間的時間戳類型

格式:yyyy年、MM/mm月、DD日  HH/hh時、mi分、ss秒AM表示上下午、day、dy表示星期。d:表示一週的第幾天ddd:表示一年的第幾天

注:oracle數據是不區分大小寫的

    1.to_char(p1,fmt):將p1按照fmt的格式進行顯示(通常使用在查詢語句)

    2.to_date(p1,fmt):按照fmt的格式,把字符串變成日期類型(通常使用在增加和修改語句)

    3.last_day(p1):查詢p1所在月的最後一天

    4.add_months(p1,n):查看p1之後n個月的日期,n可以是正數,也可以是負數,小數(會自動進行截取)

    5.months_between(p1,p2):計算p1,p2之間相差的月數,結果可能是正數、小數、負數

    6.next_day(date,num):計算某個日期到下個週週幾的時間,num的範圍爲1~7表示週日到週六

    7.extract(分量 from date):提取date中的分量,分量有year、month、day、hour、minute、second

注:其中date類型可以提取 前三個分量,timestamp可以提取全部的分量

    8.least(p1,p2,……)/greatest(p1,p2,……)比較多個參數,最小/最大值,參數的類型相同或者是可以默認轉換成相同類型的類型

空值處理函數:

    1.nvl(p1,p2):如果p1值爲null,就會使用p2,不爲空則爲自身的值

    2.nvl2(p1,p2,p3):如果p1爲null使用p3,不爲空使用p2

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