前沿拓展:
userenv
98安裝盤找找沒(méi)文件
一、字符函數(shù)
字符函數(shù)是oracle中最常用的函數(shù),我們來(lái)看看有哪些字符函數(shù):
lower(char):將字符串轉(zhuǎn)化為小寫的格式。
upper(char):將字符串轉(zhuǎn)化為大寫的格式。
length(char):返回字符串的長(zhǎng)度。
substr(char, m, n):截取字符串的子串,n代表取n個(gè)字符的意思,不是代表取到第n個(gè)
replace(char1, search_string, replace_string)
instr(C1,C2,I,J) –>判斷某字符或字符串是否存在,存在返回出現(xiàn)的位置的索引,否則返回小于1;在一個(gè)字符串中搜索指定的字符,返回發(fā)現(xiàn)指定的字符的位置;
問(wèn)題:將所有員工的名字按小寫的方式顯示
SQL> select lower(ename) from emp;
問(wèn)題:將所有員工的名字按大寫的方式顯示。
SQL> select upper(ename) from emp;
問(wèn)題:顯示正好為5個(gè)字符的員工的姓名。
SQL> select * from emp where length(ename)=5;
問(wèn)題:顯示所有員工姓名的前三個(gè)字符。
SQL> select substr(ename, 1, 3) from emp;
問(wèn)題:以首字母大寫,后面小寫的方式顯示所有員工的姓名。
SQL> select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp;
問(wèn)題:以首字母小寫,后面大寫的方式顯示所有員工的姓名。
SQL> select lower(substr(ename,1,1)) || upper(substr(ename,2,length(ename)-1)) from emp;
問(wèn)題:顯示所有員工的姓名,用“我是老虎”替換所有“A”
SQL> select replace(ename,’A’, ‘我是老虎’) from emp;
問(wèn)題:instr(char1,char2,[,n[,m]])用法
SQL> select instr(‘azhangsanbcd’, ‘zhangsan’) from dual; –返回2
SQL> select instr(‘oracle traning’, ‘ra’, 1, 1) instring from dual; –返回2
SQL> select instr(‘oracle traning’, ‘ra’, 1, 2) instring from dual; –返回9
SQL> select instr(‘oracle traning’, ‘ra’, 1, 3) instring from dual; –返回0
二、數(shù)學(xué)函數(shù)
數(shù)學(xué)函數(shù)的輸入?yún)?shù)和返回值的數(shù)據(jù)類型都是數(shù)字類型的。數(shù)學(xué)函數(shù)包括cos,cosh,exp,ln, log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round等
我們講最常用的:
round(n,[m]) 該函數(shù)用于執(zhí)行四舍五入。
eg、SELECT round(23.75123) FROM dual; –返回24
SELECT round(23.75123, -1) FROM dual; –返回20
SELECT round(27.75123, -1) FROM dual; –返回30
SELECT round(23.75123, -3) FROM dual; –返回0
SELECT round(23.75123, 1) FROM dual; –返回23.8
SELECT round(23.75123, 2) FROM dual; –返回23.75
SELECT round(23.75123, 3) FROM dual; –返回23.751
trunc(n,[m]) 該函數(shù)用于截取數(shù)字。
eg、SELECT trunc(23.75123) FROM dual; –返回23
SELECT trunc(23.75123, -1) FROM dual; –返回20
SELECT trunc(27.75123, -1) FROM dual; –返回20
SELECT trunc(23.75123, -3) FROM dual; –返回0
SELECT trunc(23.75123, 1) FROM dual; –返回23.7
mod(m,n)取余函數(shù)
eg、select mod(10,2) from dual; –返回0
SELECT MOD(10,3) FROM dual; –返回1
floor(n) 返回小于或是等于n的最大整數(shù)
ceil(n) 返回大于或是等于n的最小整數(shù)
eg、SELECT ceil(24.56) from dual; –返回25
SELECT floor(24.56) from dual; –返回24
abs(n) 返回?cái)?shù)字n的絕對(duì)值
三、日期函數(shù)
日期函數(shù)用于處理date類型的數(shù)據(jù)。默認(rèn)情況下日期格式是dd-mon-yy 即“12-7 月-12”
(1)sysdate 返回系統(tǒng)時(shí)間
eg、SQL> select sysdate from dual;
(2)oracle add_months函數(shù)
oracle add_months(time,months)函數(shù)可以得到某一時(shí)間之前或之后n個(gè)月的時(shí)間
eg、select add_months(sysdate,-6) from dual; –該查詢的結(jié)果是當(dāng)前時(shí)間半年前的時(shí)間
select add_months(sysdate,6) from dual; –該查詢的結(jié)果是當(dāng)前時(shí)間半年后的時(shí)間
(3)last_day(d):返回指定日期所在月份的最后一天
問(wèn)題:查找已經(jīng)入職8個(gè)月多的員工
SQL> select * from emp where sysdate>=add_months(hiredate,8);
問(wèn)題:顯示滿10年服務(wù)年限的員工的姓名和受雇日期。
SQL> select ename, hiredate from emp where sysdate>=add_months(hiredate,12*10);
問(wèn)題:對(duì)于每個(gè)員工,顯示其加入公司的天數(shù)。
SQL> select floor(sysdate-hiredate) “入職天數(shù)”,ename from emp;
四、轉(zhuǎn)換函數(shù)
轉(zhuǎn)換函數(shù)用于將數(shù)據(jù)類型從一種轉(zhuǎn)為另外一種。在某些情況下,oracle server允許值的數(shù)據(jù)類型和實(shí)際的不一樣,這時(shí)oracle server會(huì)隱含的轉(zhuǎn)化數(shù)據(jù)類型 。
函數(shù)to_date用于將字符串轉(zhuǎn)換成date類型的數(shù)據(jù)。 問(wèn)題:能否按照**人習(xí)慣的方式年—月—日添加日期。
eg、SELECT to_date(‘2018-10-17 19:25:00′,’yyyy-mm-dd hh24:mi:ss’) FROM dual;
五、sys_context()系統(tǒng)函數(shù)
1)terminal:當(dāng)前會(huì)話客戶所對(duì)應(yīng)的終端的標(biāo)示符,如計(jì)算機(jī)名
2)language: 語(yǔ)言
3)db_name: 當(dāng)前數(shù)據(jù)庫(kù)名稱
4)nls_date_format: 當(dāng)前會(huì)話客戶所對(duì)應(yīng)的日期格式
5)session_user: 當(dāng)前會(huì)話客戶所對(duì)應(yīng)的數(shù)據(jù)庫(kù)用戶名
6)current_schema: 當(dāng)前會(huì)話客戶所對(duì)應(yīng)的默認(rèn)方案名
7)host: 返回?cái)?shù)據(jù)庫(kù)所在主機(jī)的名稱 通過(guò)該函數(shù),可以查詢一些重要信息,比如你正在使用哪個(gè)數(shù)據(jù)庫(kù)?
select sys_context(‘USERENV’,’db_name’) from dual; 注意:USERENV是固定的,不能改的。
oracle中的函數(shù)好多,想要把這些函數(shù)也都記住是不太現(xiàn)實(shí)的,所以小編綜合來(lái)說(shuō)了一下oracle中的一些常用函數(shù)及示例,一是為了和大家分享,二是可以在以后工作中忘記了隨時(shí)查閱,覺(jué)得有用的可以收藏下哦!
后面會(huì)更多分享DBA相關(guān)內(nèi)容,感興趣的朋友可以關(guān)注下!
拓展知識(shí):
userenv
如果你用的是XP或98系統(tǒng),點(diǎn)擊
開(kāi)始–運(yùn)行—輸入
msconfig
選中
啟動(dòng)
項(xiàng),把userenv前的對(duì)勾去掉,重啟系統(tǒng)。如果你找不到,就留著
ctfmon(輸入法,如果你不啟用,你就找不到輸入法哦),其余的全部禁用。
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://xiesong.cn/27026.html