Oracle學習第七課 表連線及其應用

2021-09-29 19:45:08 字數 2659 閱讀 8384

概念: 將多張表的資料合併成一張表,然後進行查詢處理.[放在from後面]

語法:表1 join 表2 on 表1.xx欄位=表2.xx欄位

-- 查詢員工id,名字,薪資,部門id,部門名稱?

思路:1. 表連線員工表和部門表,為一張表,確定連線依據: 部門表.部門id=員工表.部門id

employees emp join departments dept on emp.department_id = dept.department_id; ---emp+depart

2. 對連線後的表進行查詢即可

select e.employee_id,e.first_name,e.salary,e.department_id,d.department_name

from employees e join departments d on e.department_id = d.department_id;

人工思路圖示

特點:合併左表中存在且右表中與之對應的資料

左表中存在,但右表中沒有與之對應的資料,直接捨棄.

外連線

分類:

左外連: [常用]

語法:表1 left join 表2 on 連線規則.

-- 查詢員工id,名字,薪資,部門id,部門名稱?

思路:1. 表連線---一張表

employees e left join departments d on e.department_id = d.department_id;

2. 對連線後的表查詢

select e.employee_id,e.first_name,e.salary,e.department_id,d.department_name

from employees e left join departments d on e.department_id = d.department_id;

特點:

左表中存在,且右表中有與之對應的資料,合併保留.

左表中存在,且右表中沒有與之對應的資料,保留,不存在的資料補空.

右外聯:[了解]

語法: 表1 right [outer] join 表2 on 連線規則

特點: 保留右表存在,但左表中不存在的資料.

表連線應用

-- 1. 查詢部門資訊:id,部門名稱,部門位址id,位址城市?  [兩表連線]

① 連線 部門表和位址表 ,規則: 部門表的location_id=位址表.location_id

departments e left join locations c on e.location_id = c.location_id

② 對連線後的表查詢

select d.department_id,d.department_name,d.location_id,c.city

from departments d left join locations c on d.location_id = c.location_id;

-- 2. 查詢員工資訊: 工號,名字,薪資,部門id,部門名稱,部門所在位址id,所在城市city? [多表連線]

① 表連線 員工表   部門表  

employees e left join departments d on e.department_id = d.department_id

② 連線後的表再連線 位址表

employees e left join departments d on e.department_id = d.department_id

left join locations c on d.location_id = c.location_id

③ 查詢

select e.employee_id,e.first_name,e.salary,e.department_id,d.department_name,d.location_id,c.city

from

employees e left join departments d on e.department_id = d.department_id

left join locations c on d.location_id = c.location_id

​-- 3. 查詢員工資訊: 工號,名字,薪資,該員工領導的id,領導的名字? [內連線 --重要]

1. 表連線

employees e1 left join employees e2 on e1.manager_id = e2.employee_id

2. 查詢資訊

select e1.employee_id,e1.first_name,e1.salary,e1.manager_id,e2.first_name as 領導名字

from employees e1 left join employees e2 on e1.manager_id = e2.employee_id

Oracle學習第七課 表連線及其應用

概念 將多張表的資料合併成一張表,然後進行查詢處理.放在from後面 語法 表1 join 表2 on 表1.xx欄位 表2.xx欄位 查詢員工id,名字,薪資,部門id,部門名稱?思路 1.表連線員工表和部門表,為一張表,確定連線依據 部門表.部門id 員工表.部門id employees emp...

Oracle學習第七課 表連線及其應用

概念 將多張表的資料合併成一張表,然後進行查詢處理.放在from後面 語法 表1 join 表2 on 表1.xx欄位 表2.xx欄位 查詢員工id,名字,薪資,部門id,部門名稱?思路 1.表連線員工表和部門表,為一張表,確定連線依據 部門表.部門id 員工表.部門id employees emp...

MySQL第七課 表的約束

返回知識列表 mysql知識列表 目錄 7 約束 7.1 mysql支援的完整性約束 7.2 非空約束 not null,值不能為null 7.3 唯一約束 unique,值不能重複 7.4 主鍵約束 primary key 7.5 外來鍵約束 foreign key,讓表於表產生關係,從而保證資料...