資料庫多表查詢

2021-09-24 09:21:11 字數 1064 閱讀 6881

笛卡爾積:

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