Oracle基礎知識5 多表查詢1

2021-08-10 22:53:46 字數 1899 閱讀 1973

–關係型資料庫 : 表與表之間是有關聯的

–非關係型資料庫 : 底層就是一張表 , 與其他表沒有關係

–關聯查詢的結果集中的字段來自多張表,

–需要在查詢的時候聯合多張表進行查詢,

–根據給定的連線條件將表與表的資料建立對應關係,

–再分別從這些記錄中提取要查詢的字段來形成結果集中的每條記錄

select * 

from emp,dept;

–這個叫笛卡爾積~~

–查詢中不指定連線條件或連線條件無意義時,會產生笛卡爾積。這通常是無意義的

select ename,emp.deptno,dname

from emp,dept

where emp.deptno = dept.deptno;

–查詢每個員工的名字和他所在的部門名稱

select ename,loc

from emp,dept

where emp.deptno = dept.deptno and dept.loc = 'new york';

–檢視在new york工作的都有誰

–內連線 :

select ename,emp.deptno,dname,loc

from emp join dept

on emp.deptno = dept.deptno

where loc = 'new york';

–join連線兩個表 , on 後面是關聯條件

–左內連線時,以左邊表為主 (主表內容必須顯示)

select ename,dname

from emp left

join dept

on emp.deptno = dept.deptno;

–左連線(左表的資料都有)

select ename,dname

from emp right

join dept

on emp.deptno = dept.deptno;

–右連線(右表的資料都有)

select ename,emp.deptno,dname

from emp,dept

where emp.deptno(+) = dept.deptno;

–這也是右連線的一種查詢方式

–(+)在哪邊,哪邊的表就無效(也就是以另乙個表為主表)

–全連線 :左表右表都作為主表查詢一下

select ename,dname

from emp full

join dept

on emp.deptno = dept.deptno;

–全連線(左表右表的資料都顯示出來)

–自連線 :(自連線的時候一定要取別名)

select e.empno,e.ename,e.mgr,m.ename

from emp e,emp m

where e.mgr = m.empno(+);

–檢視每個員工的上司

–這個時候如果用內連線的話 , 會漏資料(沒有領導的員工就被漏掉了)

emp表↑

dept表↑

Oracle基礎知識

關於oracle的安裝過程這裡不再一一列出,網上有許多的安裝教程以及安裝過程所遇問題的解決辦法。通過學習所達到的目標如下 理解結構化查詢語句的作用 分類 理解select語句的作用 掌握選擇所有列 指定列 表示式 帶空值null 列別名 連線操作符 消除重複行的sql語句書寫方法。結構化查詢語言 s...

Oracle基礎知識

oracle基本划水知識 1.oracle 是乙個資料庫管理系統 啟動 服務 lsnrctl start 啟動資料庫服務 net start oracleserviceorcl 邏輯結構 資料庫 表空間 資料段 資料區間 資料段 進入資料庫 sqlplus 使用者名稱 密碼 切換使用者 conn 使...

oracle基礎知識

1.檢視所有使用者 select from dba user select from all users select from user users 2.檢視使用者系統許可權 select from dba sys privs select from all sys privs select fr...