美麗Oracle之-Oracle第三天 系統函數、查詢
一、字符串函數:
1、 upper(表達式) :將表達式變成大寫
2、 lower(表達式) :將表達式變成小寫
3、 replace(''表達式
4、 concat(表達式1,表達式2) :字符串連接,相當於 ||
5、 initcap(表達式) :將表達式的手寫字母變成大寫
6、 length(表達式) :求表達式長度
7、 substr(表達式,m,n) :取子串,從第m取到第n
8、 instr(表達式1,表達式2) :求表達式2在表達式1中出現的位置,找到>0,否則<0
9、 trim(表達式) :去左右空格
10、 ltrim(表達式) :去左括號
11、 rtrim(表達式) :去右括號
12、 lpad(表達式1,m,表達式2) :左填充
13、 lpad(表達式1,m,表達式2) :右填充
14、 ascii(表達式) :取字母的ascii碼
二、數學函數:
1、 abs(表達式) :取絕對值
2、 mad(表達式1,表達式2) :取余
3、 round(表達式,m) :四捨五入,m表示保留小數點位數
4、 trunc(表達式,m) :截取,m表示保留小數位數
三、日期函數:
1、 sysdate :取得系統時間和日期
2、 add_months(表達式,m) :給表達式加上m個月,返回日期型
3、 month_between(表達式1,表達式2) :兩個表達式做差,返回相差的月份,數值型
注:Oracle中,兩日期直接做差,返回相差天數,數值型
四、轉換函數:
1、 to_char(表達式,’格式’) :將日期型按照某種格式轉換成字符型
yyyy-年4位
yy-年2位
mm-月
dd-天
day-周
hh12-12小時制,小時
hh24-24小時制。小時
mi-分
ss-秒
2、 to_date(表達式,’格式’) :將字符格式的日期轉換為日期型
3、 to_number(表達式) :將字符型的數字轉為數值型
五、多表查詢:
1、 笛卡爾乘積:
沒有連接條件的查詢,結構是多表記錄數的乘積
如:
select emp.*,dept.* from emp,dept
正確:
select emp.*,dept.* from emp,dept where emp.deptno=dept.deptno
2、 連接條件:
用於連接2個表的查詢條件
連接字段:條件連接的字段,連接字段存在可比性
4、 等值連接:
用等號連接
5、 自連接:
自己與本身的連接,當表中存在上下級關系或層次關系時,使用自連接,自連接必須起別名。
6、 內連接:
只返回滿足條件的記錄
如:
select a.*,b.* from 表1 as a inner join 表2 as b on a.字段=b.字段
7、 外連接:
不僅返回滿足條件的記錄,也返回不滿足條件的記錄
1) 左連接:返回左表不滿足條件的記錄,右表沒有對應則填空
2) 右連接:返回右表不滿足條件的記錄,左表沒有對應則填空
3) 全連接:左右表全顯示並去掉重復
注:左右表對於left/right join 而言
六、聯合操作(並操作):
將多個結果集合並成一個結果集
格式:
1)
select 語句
union =>去掉重復
select 語句
2)
select 語句
union all =>不去重復
select 語句
1、 交集:結果集中共有的記錄
格式:
select 語句
intersect
select 語句
2、 差集:
結果集做差
格式:
select 語句
minus
select 語句
七、高級查詢:
1、 子查詢:
在一個select語句中使用另一個select語句作條件或數據來源
2、 查詢塊:
一個select語句
3、 嵌套查詢:
在一個查詢塊中使用另一個查詢塊
1) 不相關子查詢:
子查詢不依賴於主查詢,子查詢可以獨立運行
2) 相關子查詢:
子查詢依賴於主查詢
注:子查詢必須使用括號括起來