1樓:
(+)是外連線,表示當前條件等號左側的表為主表,如果等號條件成立,查詢中如果有等號右側表中的字段,按照關聯條件查詢出資料,如果右側沒有條件符合,那麼查詢中補空。
舉個例子,假設emp和dept表資料如下:
emp: emp_id, emp_name, dept_id
001 張三 10
002 李四 10
003 王五 20
004 趙六 30
dept: dept_id dept_name
10 部門1
20 部門2
查詢語句:select emp_id, emp_name, dept_name
from emp, dept
where emp.dept_id = dept.dept_id(+);
從上面兩表能看出來,emp表中的最後一行資料,dept_id為30,在dept表沒有對應的資料,使用直連(即不帶加號)只能查詢到前三行資料,可是使用外連,以emp為主表,那麼emp表的資料就都可以查到。結果如下:
emp_id emp_name dept_name
001 張三 部門1
002 李四 部門1
003 王五 部門2
004 趙六 null(空,沒有資料)
2樓:匿名使用者
一樓完全誤導啊。。(+)真是外連線的意思,你這麼寫就相當於是左外連線,也就是e.mgr這個表的內容將全部被查詢
第二個問題這寫表是資料庫的例項表,沒有中文名,emp代表employer也就是雇員表,而dept代表的department也就是部門表
3樓:匿名使用者
這個(+)代表內連線的意思,舉個例子 mgr欄位對應的empno欄位如果沒有數的話也顯示結果。
例子:不使用(+)結果是:
mgr empno
cleck 7759
jobs 8792
cleck 8100
這樣對顯示2個字段都有值才顯示。
如果加(+)
mgr empno
cleck 7759
jobs 8792
cleck 8100
linkes
-----linkes 對應的沒有值但是也顯示,+在那邊那邊就有無值.
4樓:
(+)是oracle的語法,相當於sql99標準當中的letf join,right join ,如果(+)出現在左連表示right join ,出現在右連表示left join 。這種寫法只限於oracle資料,如果遷移到其它資料庫無法執行.
scott使用者中有什麼表建議用scott使用者登入到資料庫後執行以下語句:
select object_name from user_objects where object_type='table'
5樓:匿名使用者
左連線。 employee department
oracle分頁語句,Oracle中分頁查詢語句怎麼寫?
對的,你說的對,但是rowcount 不行吧,我一直用rownum,是了一下rowcount也不行,但是建議你這樣寫 select first rows 10 b.from select first rows 10 a.rownum rnum from select first rows 10 fr...
oracle資料庫備份語句
exp 畢竟也需要連線到資料庫,也就是需要提供使用者名稱,密碼,所以你說的資料庫模式匯出,是無法正常實現的。但是使用dba使用者登陸,可以實現匯出整個資料庫的類似功能。資料庫模式 exp system passwd oracle full y file db081222.dmp log db0812...
oracle中sql語句如何動態拼接
龍氏風采 sql code 在儲存過程裡面完成唄 例 create or replace procedure yyp cwdh table name varchar isstr sql varchar2 400 begin str sql select from table name where 1...