最近學Oracle數據庫,常常遇到Oracle數據庫函數問題,經過默默地琢磨處理,總結了一些Oracle數據庫常用函數。
------------------------------------ ---->oracle常用基本函數(附例子)<---- ------------------------------------
------------------------ ---->常用的字符函數<---- ------------------------
--initap()單詞首字母大寫 人名 地名 select initcap ('z慶l love') from dual
--lower() 字母全轉為小寫 select lower('Zq L') from dual
--upper() 字母全轉為小寫 select upper('zQ l') fro m dual
--ltrim() 左裁剪 必須從第一個開始匹配 直到匹配完成 才能截取成功 select ltrim('人生真是寂寞如雪啊','真') from dual
--rtrim() 右裁剪 同左裁剪 select rtrim('人生真是寂寞如雪啊','啊') from dual
--translate() 按字符翻譯 select translate('zadqlf','abfd','愛國向上') from dual
--replace() 字符串替換 select replace('人生這是寂寞如雪啊','這是','嘎嘎嘎') from dual
--instr() 查找子串的位置 select instr('人生真是寂寞如雪啊','如雪') from dual
--substr() 取子字符串 select substr('人生這是寂寞如雪啊',1,4) from dual
--concat() 連接字符串 select concat('My','Love') from dual
---------------------- ---->常用數字函數<---- ----------------------
--abs()取絕對值 select abs(-15) from dual
--ceil()向上取整 去掉小數部分 正數+1 負數+0 select ceil(-1.1) 負數,ceil(1.1) 正數 from dual
----floor() 向下取整 等於去掉小數部分 正數-0 負數-1 select floor(-1.1) 負數,floor(1.1) 正數 from dual
--sin()正弦 三角形對邊和斜邊的比---->不常用<---- select sin(1.5) from dual
--cos() 余弦 三角形鄰邊與斜邊的比 ---->不常用<---- select cos(1.5) from dual
--sign() 取符號 select sign(-32) 負號,sign(32) 正號 from dual
--power(m,n) m的n次方 select power(3,3) from dual
--sqrt() 平方根 獲取數字的平方根 ---->不常用<---- select sqrt(4) from dual
--mod() 取余數 類似於 java中% select mod(7,2) from dual
--round(m,n) 四捨五入 m->操作數 n->精確到小數後幾位 select round(1.116,2) from dual
--trunc() 截斷 m->操作數 n->保留小數後幾位 select trunc(1.116,2) from dual
---------------------- ---->常用日期函數<---- ----------------------
--months_between() 返回兩個日期之間相差的月份 參數需是date型 select months_between(date'04-11-05',date'11-1-01') from dual
--add_months() 給日期添加月份 第一個參數需是date select add_months(date'2015-2-14',1) from dual
--next_day() 返回指定日期 後某個星期對應的天數 第二個星期參數需是英文 select next_day(date'2015-5-6','monday') from dual
--round() 按指定格式對日期進行"四捨五入" 這裡需要注意時間的轉化 以及四捨五入的范圍 ---->不常用<---- select round(to_date('2012-2-03','yyyy-mm-dd'),'year') from dual; select round(to_date('2012-2-17','yyyy-mm-dd'),'month') from dual; select round(to_date('2012-2-03','yyyy-mm-dd'),'day') from dual;
--trunc() 對日期按指定的方式進行截斷 類似小數的截斷 參照一下不難理解 select trunc(date'2015-8-1','year') from dual
--extract() 獲取時間各個部分 select extract(month from date'2015-08-01') from dual
--date'字符串' 字符串轉化時間 select date'2015-01-02' from dual
--to_timestamp() 格式化(時間)字符串 --->不常用<--- select to_timestamp('2015-01-01','yyyy-mm-dd') from dual
---------------------- ---->常用轉換函數<---- ----------------------
--to_char() 轉換成字符串類型 to_char轉化有 格式 容易出錯 例如$9999.9 不能寫成¥9999.9 select to_char(date'2015-01-01','yyyy"年"mm"月"dd"日"') from dual select to_char(1234.4,'$9999.9') from dual
--to_date() 轉換成時間類型 date系統格式 2015/5/6 select to_date('2015-5-6','yyyy-mm-dd') from dual
--to_number() 轉換成數值類型 select to_number('2015.56') from dual
---------------------- ---->操作結果函數<---- ----------------------
--decode() 相當於sql的case end select decode(1,1,'true',2,'false') from dual
--nvl() 替換指定列中的null值 select nvl(name,'無名') from pet --name 是null 返回‘無名’ 不是null返回 原值
--nvl2() select nvl2(name,'無名','有名') from pet --name 是null 返回‘無名’ 不是null返回 ‘有名’
------------------------ ---->常用的多行函數<---- ------------------------
--sum() 求和 select sum(love) from pet
--avg() 求平均數 select avg(love) from pet
--count() 計數 select count(*) from pet
--max() 求最大數 select max(love) from pet
--min() 求最小數 select min(love) from pet
注意:Oracle數據庫插入時間:不能直接插入時間
如2014-12-05,而應該
to_date('2014-12-05','yyyy-mm-dd'),