關聯查詢
多張表,而表與表之間是有聯絡的
是通過欄位中的資料的內在聯絡來發生
而不是靠相同的欄位名來聯絡的或者是否有主外來鍵的聯絡是沒有關係的
select dname,ename from emp,dept;
笛卡爾積 (無意義的)
--當2個表作關聯查詢的時候一定要寫關聯的條件
--n個表 關聯條件一定有n-1個
select dname,ename from mydept,myemp
where mydept.no = myemp.deptno;
多表查詢的時候一定要有關聯的條件
--使用的表的全名
select dname,ename from emp,dept
where emp.deptno = dept.deptno ;
--使用表的別名
select dname,ename,a.deptno from emp a,dept b
where a.deptno = b.deptno and a.deptno = 10;
--等值連線(內連線-兩個表的資料作匹配a.deptno = b.deptno )
select dname,ename,a.deptno from
emp a inner join dept b
on a.deptno = b.deptno;
where a.deptno = 10;
--on寫連線條件的
--where中寫別的條件
--使用where/on
select dname,ename,a.deptno from emp a,dept b
where a.deptno = b.deptno and a.deptno=10;
--on中寫連線條件
--where中寫其他的條件
select dname,ename,a.deptno from
emp a inner join dept b
on a.deptno = b.deptno
where a.deptno = 10 ;
--外連線
左外連線 右外連線 全外連線
(+)寫法只有在oracle中有效
select dname,ename,b.deptno
from emp a,dept b
where a.deptno(+) = b.deptno;
--標準寫法
select dname,ename,b.deptno
from emp a right outer join dept b
on a.deptno = b.deptno;
select dname,ename,b.deptno
from emp a,dept b
where a.deptno = b.deptno(+);
--標準寫法
select dname,ename,b.deptno
from emp a left outer join dept b
on a.deptno = b.deptno;
--標準寫法(全外聯)
select dname,ename,b.deptno
from emp a full outer join dept b
on a.deptno = b.deptno;
--自連線
select a.ename as 員工姓名,b.ename as 經理名字 from emp a,emp b
where a.mgr = b.empno(+);
a.empno = b.mgr ???????
Oracle資料關聯查詢
關聯在oracle資料查詢時會經常用到,靈活的應用關聯可以解決很多實際應用的問題.下面給出一些示例 建表 create table ab ab id number 5 ab name varchar2 30 create table bb bb id number 5 bb name varchar...
Oracle資料關聯查詢
關聯在oracle資料查詢時會經常用到,靈活的應用關聯可以解決很多實際應用的問題.下面給出一些示例 建表 create table ab ab id number 5 ab name varchar2 30 create table bb bb id number 5 bb name varchar...
Oracle資料關聯查詢
關聯在oracle資料查詢時會經常用到,靈活的應用關聯可以解決很多實際應用的問題.下面給出一些示例 建表 create table ab ab id number 5 ab name varchar2 30 create table bb bb id number 5 bb name varchar...