sql的各種連線查詢

2021-09-01 10:18:14 字數 2107 閱讀 1662

以下均以oracle->scott賬號自帶的資料庫為例(方括號裡的東西表示有和沒有效果是一樣的)。

表內查詢->自連線

查詢所有經理所對應的雇員:

sql/86:

select manager.ename as manager,worker.ename as worker from emp manager,emp worker where manager.empno=worker.mgr;

sql/92:

select manager.ename as manager, worker.ename as worker where emp manager [inner] join emp worker on manager.empno=worker.mgr;

表間連線->內連線

查詢部門名對應的雇員名:

sql/86:

select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;

sql/92:

select e.ename ,d.dname from emp e [inner] join dept d on e.deptno=d.deptno;

相同列名的關聯可以用自然連線達到同樣的效果:

select ename,dname from emp natural [inner] join dept;

->左外連線

查詢雇員名對應的部門名和沒有部門對應的雇員名:

sql/92:

select e.ename,d.dname from emp e left [outer] join dept d on e.deptno=d.deptno;

相同列名的關聯可以用自然連線達到同樣的效果:

select ename,dname from emp natural left [outer] join dept;

->右外連線

查詢雇員名對應的部門名和沒有雇員對應的部門名:

sql/92:

select e.ename,d.dname from emp e [right] outer join dept d on e.deptno=d.deptno;

相同列名的關聯可以用自然連線達到同樣的效果:

select ename,dname from emp natural right [outer] join dept;

->全連線

sql/92:

select e.ename,d.dname from emp e full [outer] join dept d on e.deptno=d.deptno;

相同列名的關聯可以用自然連線達到同樣的效果:

select ename,dname from emp natural full [outer] join dept;

---------以上都是相等連線,還有一種不等連線

例如,顯示每個雇員的名字和薪資等級:

sql/86:

select e.ename,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;

sql/92:

select e.ename,s.grade from emp e [inner] join salgrade s on e.sal between s.losal and s.hisal;

*1、between...and...包括兩個端點值(僅限於oracle,其它資料庫的處理方式可能不同)。

2、從可以加inner中可以看出,不等連線也可以有內連線、左外/右外/全連線。

SQL語句的各種連線查詢

連線查詢,等值和非等值連線 若在等值連線中把重複的屬性列去掉,則為自然連線 自身連線,查詢每一門課的間接先修課 外連線,在通常的連線操作中,只有符合條件的元祖才能作為結果輸出。如上上表中沒有200215125學生的資訊,原因是他沒有選課。但有時我們需要以某個表為主題列出所有元祖的情況,比如說以stu...

SQL中的各種連線及查詢

sql中的各種連線及查詢 有如下兩張表 內連線 兩個表的內鏈結就是兩個表的並集。外連線 兩個表的內鏈結就是兩個表的交集。關鍵字 full outer join 或者full join 左外連線 a的全集 若b中不存在就null。select from test userone t left oute...

SQL各種連線

1.內連線 inner join 內連線使用比較運算子根據每個表共有的列的值匹配兩個表中的行。2.外連線 外連線可以是 左向外連線 右向外連線或完整外部連線。在from子句中指定外連線時,可以由下列幾組關鍵字中的一組指定 left join 或 left outer join。左向外連線的結果集包括...