資料庫學習6 連線查詢

2021-06-22 16:24:45 字數 2792 閱讀 5638

/*

集合操作

*/--並集

--union all 合併集合

select tt1,tt2,tt3 from test1

union all

select * from test2;

--union 合併集合且去重複

select tt1,tt2,tt3 from test1

union

select * from test2;

--交集

select tt1,tt2,tt3 from test1

intersect

select * from test2;

--差集 第乙個集合減去交集並且去重複

select tt1,tt2,tt3 from test1

minus

select * from test2;

--rownum

select rownum,emp.* from emp where rownum<6;

--通過偽列rownum和集合操作符minus完成分頁查詢

select rownum,emp.* from emp

where rownum<11

minus

select rownum,emp.* from emp

where rownum<3;

/**連線(聯表)查詢

*/

--內連線(inner join或join): 符合連線條件的記錄

select * from emp inner join dept

on emp.deptno=dept.deptno; --連線條件

select * from emp e,dept d

where e.deptno = d.deptno;

--查詢員工編號,姓名,工作,入職日期,薪水,部門名稱

select empno,ename,job,hiredate,sal,dname

from emp t1 inner join dept t2

on t1.deptno = t2.deptno;

select empno,ename,job,hiredate,sal,dname

from emp t1 join dept t2

on t1.deptno = t2.deptno;

--外連線

--左外連線(left outer join或left join):符合條件的加上左邊不符合條件的記錄

select * from emp e left outer join dept d

on e.deptno = d.deptno;

select * from emp e left join dept d

on e.deptno = d.deptno;

select * from emp e,dept d

where e.deptno = d.deptno(+);

select * from dept d,emp e

where e.deptno = d.deptno(+);

select * from emp e,dept d

where d.deptno(+) = e.deptno;

--右外連線(right outer join或right join):符合條件的加上右邊不符合條件的記錄

select * from emp e right outer join dept d

on e.deptno = d.deptno;

select * from emp e right join dept d

on e.deptno = d.deptno;

select * from emp e ,dept d

where e.deptno(+) = d.deptno;

--全連線(full join)

select * from emp e full join dept d

on e.deptno = d.deptno;

--查詢工作型別是clerk的員工姓名,工作,薪水,部門名

select ename,job,sal,dname

from emp t1, dept t2

where t1.deptno = t2.deptno

and job = 'clerk';

select ename,job,sal,dname

from emp t1 join dept t2

on t1.deptno = t2.deptno

where job = 'clerk';

--查詢員工名字和領導名字

select t1.ename,t2.ename from emp t1,emp t2

where t1.mgr = t2.empno;

練習:1.  查詢所有員工的名稱,部門編號及部門名稱

2.  列出所有雇員的姓名、部門名稱和薪金

3.  顯示有提成的員工的資訊:

名字、提成、所在部門名稱、所在地區的名稱

4.  列出所有「clerk」(辦事員)的姓名及其部門名稱

5.  列出部門名稱和這些部門的雇員,

同時列出那些沒有雇員的部門

6.  列出所有雇員的姓名及其直接上級的姓名

7.  列出入職日期(僱傭日期)早於其直接上級的所有雇員

8.  列出分配有雇員數量的所有部門的詳細資訊,

即使是分配有0個雇員

再看資料庫 (6)連線

連線是多表查詢的基礎。因為關聯式資料庫不包括指標或其它關聯記錄與記錄的機制,連線成為了生成跨表資料關係的唯一機制。這也就是要用連線的原因。1 內連線 使用比較運算子比較被連線列的列值。等值 不等 以外運算子 自然 但它使用選擇列表指出查詢結果集合中所包含的列。並刪除連線表中的反覆列。演示樣例 資料庫...

資料庫學習筆記系列(7) 連線查詢

連線查詢包括如下四種情況 1.等值與非等值連線查詢 2.自身連線查詢 3.外連線查詢 4.復合條件連線查詢 下面我們分別學習一下。1.等值與非等值查詢 2.自身連線查詢 乙個表與自己進行連線,這種連線稱為表的自身連線查詢。具體實現的時候,我們可以把自己的表起兩個別名,乙個是first,乙個是seco...

nodejs高階 6 連線MySQL資料庫

連線mysql資料庫需要安裝支援 npm install mysql 我們需要提前安裝按mysql sever端 建乙個資料庫mydb1 mysql create database mydb1 mysql show databases database information schema mysq...