/*
集合操作
*/--並集
--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...