oracle語句的級聯問題,這個語句e mgr m empno誰可以給我講講這個是什麼意思還帶有詳細解答哦

時間 2021-05-23 15:04:25

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...