資料程式設計 3 oracle 多表查詢

2021-09-12 01:40:21 字數 1756 閱讀 1830

單行函式

返回單行結果

1. 字元函式

1.1大小寫控制函式

lower

upper

initcap 將單詞首字母大寫,其他字元小寫

1.2字元控制函式

concat 字元連線 ,只能有兩個引數 拼接多個是 可以巢狀呼叫

substr(str,0,5) 下標開始位 既可以是0也可以是1 這個是當初開發的乙個錯誤,0和1的結果一樣

length() 計算長度

lpad(str,10,'*') 一共十位,不夠在左邊用*補全

rpad(str,10,'*') 一共十位,不夠在左邊用*補全

trim("h","hhhsdfasdfashhh") 去掉左右兩邊的h

2. 數值函式

2.1 round() 四捨五入

2.2 trunc

2.3 mod(10,3) 取餘

3. 日期函式

3.1 sysdate

3.2 日期可以進行演算法運算:

日期+數字 = 日期 前後多天

日期 - 日期 = 天數

3.3 add_months(yue,2)

3.4 next_day 返回指定日期的指定工作日

next_day(sysdate,'星期日') 下乙個離他最近的星期日

3.5 last_day

3.6 extract 提取日期

extract(year,時間) 也可以提取月日 時分秒

4. 轉換函式

to_char

把其他型別 轉換成字元型別

eg :把日期變成字元

to_char(date,'yyyy-mm-dd') 按照自己的格式顯示

to_char(date,'yyyy')

fm 去掉前導0 to_char(date,'fmyyyy-mm-dd')

時分秒:

to_char(date,'hh12:mi:ss am') 後面加上上下午

數字轉換字元:(工資格式化)

to_char(sal,'99,999')

to_char(sal,'$99,999')

to_char(sal,'l99,999')

to_number

to_date

5. 通用函式

nvl() 空值轉換成其他值

nvl2(comm,sal+comm,sal) 第乙個引數不是空值 執行第二句,如果是執行第三個

decode:

decode(列,條件,結果,

條件,結果,

條件,結果,

條件,結果,

,結果)

eg :

decode(job,'clear','辦事員',

'manager','經理',

''辦事員'

)

dual 臨時表:可以作測試用,沒有記錄

**規範:函式巢狀不允許超過三層

多行函式

多表查詢

select

from 表1,表2

where

規範: 表的別名不能加as 列的別名才加as

表的別名指定後,不可以再使用原名

列名 在所有表中沒有重複出現可以不加 表名. 否則要加

3 Oracle多表查詢

3.1 執行sql檔案 檔案位址名 執行某個sql檔案 3.2 多表查詢 3.3 外連線select d.deptno,d.dname,count empno from dept d,emp e where d.deptno e.deptno group by d.deptno,d.dname sq...

3 oracle使用者管理

oracle使用者的管理 建立使用者 概述 在oracle中要建立乙個新的使用者使用create user語句,一般是具有dba 資料庫管理員 的許可權才能使用。create user 使用者名稱 identified by 密碼 oracle有個毛病,密碼必須以字母開頭,如果以字母開頭,它不會建立...

3 Oracle 儲存函式

create or replacefunction 函式名 引數1 in out 型別,引數2 in out 型別 retrun 結果型別 as is 定義變數 begin return 變數 變數的型別一定是跟 return的結果型別保持一致 end 1 宣告fun emp totalsal儲存函...