Oracle高級查詢、事物、過程及函數

1、SQL函數函數

  一、分類:單行函數(日期、數值、轉換、字符等),多行函數,也稱爲分組函數(max、min、avg、sum、row_number、rank等)。spa

  二、數值函數code

  •   abs(n):求數字n的絕對值
  •   ceil(n):返回大於等於數字n的最小整數
  •   floor(n):返回小於等於數字n的最大整數
  •   round(n,[m]):執行四捨五入運算。若是省略m或爲0,則四捨五入至整數位,若是m是負數,則四捨五入到小數點前m位,若是m是正數,則四捨五入至小數點後m位。
  • trunc(n,[m]):截取數字。若是省略m,則將數字n的小數部分截取,若是m是負數,則將n截取至小數點前的m位,若是m是正數,則將數字n截取至小數點後的第m位。
  • power(n,m):求數字n的m次方。
  • sqrt(n):開方。
  • mod(n,m):取餘。
  • sign(n):若是數字n爲正數,則標記爲1,爲負數,則標記爲-1,爲0,則標記爲0。

  三、字符函數(輸入參數是字符型,返回值是字符型和數值型)blog

  •   lower(char):將字符串轉換爲小寫格式。
  •   upper(char):將字符串轉換爲大寫格式。
  •   length(char):返回字符串的長度。
  •   ltrim(char,[,set]):去掉字符串char左端包含的set中的任何字符。set默認爲空格。
  •   rtrim(char,[,set]):去掉字符串char右端包含的set中的任何字符。set默認爲空格。
  •   replace(char,search_string[,replace_string]):將字符串中的字符替換爲指定的字符。
  •   substr():截取,concat():合併,instr():獲取字符串的索引位置。Oracle中索引從1開始。

    四、轉換函數索引

  •   to_number(char[,fmt[,nls_param]]):將符合特定字符串格式的字符串轉換爲數字值。
  •   to_char(date|[,fmt[,nls_param]]):將日期型轉換爲字符串,其中fmt用於指定日期格式。
  •   to_date(char[,fmt[,nls_param]]):將符合特定格式的字符串轉換爲date類型的值。
  •   nvl(expr1,expr2):將null轉變爲實際值。若是expr1是null,則返回expr2;若是expr1不是null,則返回expr1。
  •   nvl2(expr1,expr2,expr3):若是expr1不是null,則返回expr2,爲null,則返回expr3。

2、多表查詢事務

  一、集合操做符ci

  •   union:返回查詢檢索到的全部不重複的行。
  •   intersect:返回兩個查詢都檢索到的行(重複行)。
  •   union all:返回查詢檢索的所用行,包括重複行。
  •   minus:返回第一個查詢檢索到的行減去第二個查詢檢索的行所剩餘的行。

  二、鏈接查詢(聯合查詢,內外鏈接,自鏈接,子查詢)字符串

3、事務處理get

  一、commit:提交事務,rollback:回滾事務,savepoint:保存點,rollback to 保存點:回滾到保存點。string

  二、事務的ACID屬性(原子性,一致性,隔離性,持久性)

4、過程和函數

  一、存儲過程

1 --建立存儲過程
2 create [or replace] procedure procedure_name(argument1 [model] datatype1,argument1 [model] datatype1,...)--指定參數數據類型時,不能指定其長度
3     is[as]
4     PL/SQL BLOCK;
5 --調用存儲過程
6 declare
7     begin
8         存儲過程名/存儲過程名(argument);
9     end;

 

  二、函數

 1--建立函數語法
 2 create [or replace] function function_name(argument1 [model] datatype1,argument1 [model] datatype1,...)
 3     return datatype
 4     is[as]
 5     PL/SQL BLOCK;
 6 --建立函數
 7 create or replace funciton get_user
 8     return varchar2
 9     is 
10     v_user varchar(100);
11     begin
12         select ename into  v_user from scott.emp where empno='7369';
13         return v_user;
14     end;
15 --使用變量接受函數返回值
16 declare 
17     username varchar(100);
18     begin
19         username:=get_user;
20         dbms_output.put_line(username);
21     end;
22--能夠使用SQL語句直接調用函數,帶out和in out參數的函數不能在SQL中被調用
23  select get_user from dual;
相關文章
相關標籤/搜索