oracle函式與操作

aishu521發表於2012-10-15

union,union all,intersect,minus  

多用於資料量比較大的資料局庫,執行速度快。  

1). union  

該操作符用於取得兩個結果集的並集。當使用該操作符時,會自動去掉結果集中

重複行。  

SELECT ename, sal, job FROM emp WHERE sal >2500  

UNION  

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';  

2).union all  

該操作符與union相似,但是它不會取消重複行,而且不會排序。  

SELECT ename, sal, job FROM emp WHERE sal >2500  

UNION ALL  

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';  

該操作符用於取得兩個結果集的並集。當使用該操作符時,會自動去掉結果集中

重複行。  

3). intersect  

  使用該操作符用於取得兩個結果集的交集。  

SELECT ename, sal, job FROM emp WHERE sal >2500  

INTERSECT  

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';  

4). minus  

使用改操作符用於取得兩個結果集的差集,他只會顯示存在第一個集合中,而不

存在第二個集合中的資料。  

SELECT ename, sal, job FROM emp WHERE sal >2500  

MINUS  

SELECT ename, sal, job FROM emp WHERE job = 'MANAGER';  

 (MINUS就是減法的意思)  

 

事務的幾個重要操作?  

1.設定儲存點 savepoint a  

2.取消部分事務 rollback to a  

3.取消全部事務 rollback  


oracle 的函式 

 

文章分類:資料庫  

sql函式的使用  

字元函式?  

介紹  

字元函式是oracle中最常用的函式,我們來看看有哪些字元函式:  

 lower(char):將字串轉化為小寫的格式。?  

? upper(char):將字串轉化為大寫的格式。  

 length(char):返回字串的長度。?  

? substr(char,m,n):取字串的子串      n代表取n個的意思,不是代表取

到第n個  

? replace(char1,search_string,replace_string)  

? instr(char1,char2,[,n[,m]])取子串在字串的位置


日期函式?  

介紹  

日期函式用於處理date型別的資料。  

預設情況下日期格式是dd-mon-yy 即12-7月-78  

(1)sysdate: 該函式返回系統時間  

(2)add_months(d,n)  

(3)last_day(d):返回指定日期所在月份的最後一天  

問題:查詢已經入職8個月多的員工  

SQL> select * from emp where sysdate>=add_months(hiredate,8);  

問題:顯示滿10年服務年限的員工的姓名和受僱日期。  

 

$:在數字前加美元  

L:在數字前面加本地貨幣符號  

C:在數字前面加國際貨幣符號  

G:在指定位置顯示組分隔符、  

D:在指定位置顯示小數點符號(.)  

 

問題:顯示薪水的時候,把本地貨幣單位加在前面  

SQL> select ename, to_char(hiredate, 'yyyy-mm-dd hh24:mi:ss'), 

to_char(sal,'L99999.99') from emp;
to_date?  

函式to_date用於將字串轉換成date型別的資料。  

問題:能否按照中國人習慣的方式年—月—日新增日期。  

 

系統函式  

 sys_context?  

1)terminal:當前會話客戶所對應的終端的標示符  

2)lanuage: 語言  

3)db_name: 當前資料庫名稱  

4)nls_date_format: 當前會話客戶所對應的日期格式  

5)session_user: 當前會話客戶所對應的資料庫使用者名稱  

6)current_schema: 當前會話客戶所對應的預設方案名  

7)host: 返回資料庫所在主機的名稱  

通過該函式,可以查詢一些重要資訊,比如你正在使用哪個資料庫?  

select sys_context('USERENV','db_name') from dual;  

注意:USERENV是固定的,不能改的,db_name可以換成其它,比如select 

sys_context('USERENV','lanuage') from dual;又比如select 

sys_context('USERENV','current_schema') from dual;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15187685/viewspace-746489/,如需轉載,請註明出處,否則將追究法律責任。

相關文章