笛卡爾積:
select * from emp,dept;
select * from emp cross join dept;
內連線(inner join)
(內連線把兩個表連線成乙個表(稱為第三個表),在這個表中僅包含那些滿足連線條件的記錄行):
select * from emp,dept where emp.deptno=dept.deptno;
自連線(自連線就是把某一張表中的行同該表中另外一些行連線起來):
select e.empno,e.ename,a.ename,a.mgr
from emp e,emp a
where e.mgr=a.empno;
多表關聯查詢:
select e.ename, e.sal, b.grade, a.ename, a.sal, d.grade
from emp e, emp a, salgrade b, salgrade d
where e.sal between b.losal and b.hisal
and a.sal between d.losal and d.hisal
and e.mgr = a.empno;
外連線(如果想只限定乙個表的條件而不限定另外乙個表的條件,就需要使用外連線):
select * from emp,dept where emp.deptno=dept.deptno;
select * from emp,dept where emp.deptno(+)=dept.deptno;
select * from emp right join dept on emp.deptno=dept.deptno;
select * from dept left join emp on dept.deptno=emp.deptno;
指定操作關聯列:using
select * from emp join dept using(deptno);
自然連線:
select * from emp natural join dept ;
多表查詢資料庫
在專案中建立資料庫的時候,我們經常會進行多表查詢。資料庫中建立乙個表應該與乙個實體類相對應。乙個實體物件應該與一條記錄相對應。資料庫是一種結構化的查詢語言,資料庫語言是非過程化的,寫一句就可以執行一句。進行建表的時候,如果是一對多的關係,應該在多的一方建立乙個字段。該字段為少的一方的id。進行建表的...
資料庫多表查詢 子查詢
子查詢 查詢中巢狀查詢,稱巢狀巢狀查詢為子查詢 下面要使用的表如下,放在此處便於更好地理解 emp 員工資訊表 dept 部門表 例 查詢公司員工工資最高的員工資訊 首先要得到公司員工的最高工資的值 select max salary from emp 假設查詢結果為10000然後根據上一句sql語...
oracle 資料庫 多表查詢
這裡以oracle 自帶的表為例項 1.等值連線 查詢員工資訊 員工號 姓名 月薪 部門名稱 select e.empno,e.ename,e.sal,d.dnamefrom emp e,dept d where e.deptno d.deptno e d 分別 值兩個表的別名,等值條件 為 dep...