軟體開發中oracle查詢常用方法總結

雲端計算-魏軍發表於2016-09-12
上次新霸哥和大家講解了一些關於oracle的知識發現大家對oracle還是比較感興趣的,下面新霸哥就大家比較關係的oracle中常用的查詢有哪幾種?做個和oracle相關的開發的朋友可能會知道答案,但是剛接觸過oracle的朋友可能還不知道是怎麼回事。今天,新霸哥將在此給大家做一個詳細的介紹。


  多表連線查詢


  連線多表


  1. 笛卡爾積


  在沒有任何過濾條件的情況下,左表的任意一行記錄 與 右表的任意記錄進行連線


  2. 使用連線查詢


  下面新霸哥簡單的介紹一下語法1:select columnList from table1, table2 where table1.column1 operator table2.column2(連線條件) and 過濾條件,在where子句中指定連線條件,連線n個表時,連線條件要有n-1個,幾個表中的同名欄位 引用時要加字首給表起別名:from tablename n


  這是語法2:select columnList from table1 join table2 on table1.column1 operator table2.column2 join table3 on ... where 過濾條件


  非等值連線


  連線兩個或多個表時,在條件中不使用等號,而是用比如<,>,>=,<=,!=,between m and n,in等運算子


  自然連線


  根據兩個表的同名列來執行連線操作只有當表中有同名列且資料型別也相同時才能在使用NATURAL JOIN。


  看看新霸哥給的語法:select columnList from table1 natural join table2;


  使用Using子句連線表


  如果兩個表有同名列,在連線語句裡使用Using子句來指定連線的列


  select columnList from table1 join table2 using (columnName)


  交叉連線


  使用關鍵字Cross包含多個表的連線,連線的結果為一個笛卡爾乘積


  語法:select columnList from table1 cross join table2;


  外連線


  當兩個表執行連線操作時,表中不滿足連線條件的行是會被顯示的


  語法:select columnListfrom table1 [left|right|full] outer join table2 on ...


  三種型別的外連線:


  1. Left outer join 左外連線


  返回第一個表的所有行 和 第二個表中滿足連線條件的行


  2. Right outer join 右外連線


  返回第二個表的所有行 和 第一個表中滿足連線條件的行


  3. Full outer join 滿外連線


  返回兩個表的所有行,分為兩個部分:


  1) 返回第一個表的所有行,即便第二表中沒有匹配行


  2) 返回第二個表的所有行,即便第一表中沒有匹配行


  4. 內連線 self join


  用於連線在同一個表的資料。


  子查詢 Sub Query


  在一條select語句內定義另外一條select語句。


  注意點:


  1. 子查詢在主查詢執行前執行


  2. 主查詢使用子查詢的結果


  3. 所有子查詢必須用括號括起來


  4. 為了增強可讀性,子查詢應置於比較條件的右方


  5. 除非使用top-n分析,否則子查詢中不使用order by


  子查詢的巢狀


  包含一個或多個子查詢的查詢


  單行子查詢:子查詢結果為一行


  多行子查詢:子查詢結果為多行


  Top-N查詢


  語法:select columnList from table where rownum <= n rownum只對當前select有效


  新霸哥通過開發中遇到的一些問題總結了查詢中一些常見問題:


  1. 獲取單表所有記錄  select * from table;


  2. 獲取單表某欄位不重複記錄  select distinct column from table;


  3. 查詢結果欄位取別名  select column otherName from table;


  4. 查詢過濾條件  select columnList from table where where_condition;


  5. 查詢結果排序  select columnList from table order by column [asc|desc];


  6. 分組查詢  select columnList from table group by column1, column2;


  7. 過濾多行函式結果  select columnList from table group by column1, column2 having having_condition;


  8. 多表查詢,內連線,外連線(左外連線、右外連線、滿外連線)


  select columnList from table1 [left|right|full] join table2 on table1.column1 = table2.column2;


  9. 子查詢


  10. 巢狀子查詢


  好了,今天的關於軟體開發中oracle查詢常用方法總結就寫到這裡了,更多的關於oracle方面的問題歡迎和新霸哥交流。

相關文章