單行函式
返回單行結果
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儲存函...