Oracle學習總結 day05 集合

2022-03-28 09:11:49 字數 4266 閱讀 2918

union (並集 ,去除重複行)

查詢工資大於8000或職位是程式設計師的雇員的姓名、工資、職位id --37

select first_name,salary,job_id from copy_emp where salary>4000 --37

union

select first_name,salary,job_id from copy_emp where job_id='it_prog'; --5

--union all(a+b,不會去除重複的行) --42

select first_name,salary,job_id from copy_emp where salary>4000 --37

union all

select first_name,salary,job_id from copy_emp where job_id='it_prog'; --5

--intersect 取查詢結果交集c --5

--查詢工資大於8000且職位是程式設計師的雇員的姓名、工資、職位id

select first_name,salary,job_id from copy_emp where salary>4000 --37

intersect

select first_name,salary,job_id from copy_emp where job_id='it_prog';--5

--minus(a-b) 的用法 : 顯示在a 中存在, 而在b 中不存在 --32

1. 自連線 : 自己表內連線,比如員工表中員工id和上級的員工id.

--自連線的練習使用

--名字,salary,部門編碼,部門的名稱,工資等級,上級名稱

select

worker.first_name,worker.salary,worker.department_id,department_name,grade,leader.first_name

from copy_emp worker,copy_emp leader,salgrade,copy_dept dept

where worker.manager_id=leader.employee_id

and worker.salary between losal and hisal

and worker.department_id = dept.department_id;

2. 等值連線 :

3. 非等值連線 :

--查詢員工工資和等級(非等值連線 )

select first_name || ',' || last_name as "姓名",employee_id,salary,grade

from copy_emp ce,salgrade2 sg

where ce.salary between losal and hisal;

4. 內連線 :

--檢視部門內雇員編號、姓名、所在部門編號以及部門的名稱

select employee_id,first_name,emp.department_id,department_name

from copy_emp emp inner join copy_dept dept

on emp.department_id=dept.department_id;

5. 外連線 :

--左外連線(左邊的表做了主表與右側的表關聯,右外連線相反)

--檢視所有部門 (包含沒有員工的部門 ) 的雇員編號、姓名、所在部門編號以及部門名稱

select employee_id,first_name,emp.department_id,department_name

from copy_emp emp

left join copy_dept dept

on emp.department_id=dept.department_id;

--多條件左外連線 名字,salary,部門編碼,部門的名稱,工資等級,上級名稱

select worker.first_name,worker.salary,worker.department_id,department_name,grade,leader.first_name

from copy_emp worker

left join copy_emp leader

on worker.manager_id=leader.employee_id

left join copy_dept dept

on worker.department_id=dept.department_id

left join salgrade

on worker.salary between losal and hisal;

--用 (+) 代替左外連線或右外連線,位置相反

select first_name,emp.employee_id

from copy_emp emp,copy_dept dept

where emp.department_id=dept.department_id(+)

6. 全連線 :

--查詢工資前三的員工資訊

select rownum,a.* from (select rownum,emp.* from copy_emp emp) a

where rownum <=3 order by salary nulls last;

--工資6-10 的員工資訊

select rownum,a.* from (select rownum,emp.* from copy_emp emp) a

where rownum <=10

minus

select rownum,a.* from (select rownum,emp.* from copy_emp emp) a

where rownum <=6

--1.查詢沒有員工的部門資訊

select * from copy_dept where department_id not in(select department_id from copy_emp

where department_id is not null group by department_id)

--2.查詢沒有部門的員工資訊

select * from copy_emp where department_id is null;

--思特奇 查詢出只有主功夫 沒有次功夫的員工資訊( 資訊包含 員工名字,部門名稱,功夫描述,個人資產 )

select * from dept_info;

select * from kf_info;

select * from user_info;

select * from user_kongfu;

select ukf.user_id,uinfo.name,dinfo.dept_name,kinfo.kf_name,uinfo.user_asset,ukf.main_kf_flag

from user_kongfu ukf,user_info uinfo,dept_info dinfo,kf_info kinfo

where uinfo.user_id=ukf.user_id

and dinfo.dept_no=uinfo.dept_id

and kinfo.kf_id = ukf.kf_id

and ukf.user_id not in(select user_id from user_kongfu where main_kf_flag=0 group by user_id)

C 學習筆記 day05

1 變數的儲存 1 記憶體是一塊空間,把其中的每個位元組做了編號,為了以後計算機能通過編號找到資料 2 編址方式 絕對編址 在整個程式中使用 相對編址 位元組相對於邏輯0偏移量,在程序中使用 4 儲存位址 指標 儲存變數的位址 指標的型別由將要儲存的位址的變數型別決定 int 只能儲存int變數的位...

Python學習筆記day05

高階函式 課後練習 不可變的資料型別一定可雜湊 hash 內建函式可以判斷某個型別是否可雜湊 s1 s2 s3 s4 print s1,s2,s3的交集 s1.intersection s2,s3 print s1,s2,s3的交集 s1 s2 s3 print s1,s2,s3的並集 s1.uni...

機器學習 day05 三

1.相關匯入 模組的匯入 匯入決策樹 from sklearn.tree import decisiontreeclassifier 匯入資料集 from sklearn import datasets 匯入 分割訓練集和分割測試集 網格搜尋 from sklearn.model selection...