按照年代進行分類
按照功能進行分類sql92標準:僅僅支援內連線
/**案例1:查詢女神名和對應的男神名**/
select name,boyname
from beauty,boys
where beauty.boyfriend_id = boys.id;
/**案例2:查詢員工名對應的部門名**/
select last_name,department_name
from employees,departments
where employees.'department_id' = departments.'department_id';
/**案例3:查詢員工名、工種號和工種名**/
select last_name,employees.job_id,job_title
from employees,jobs
where employees.'job_id' = jobs.'job_id';
注意:在操作過程中可以選擇為表其別名,好處如下:
提高語句的簡簡潔度區分多個重名的字段
/**查詢員工名、工種號和工種名**/
select last_name,e.job_id,job_title
from employees e,jobs j
where d.'job_id'= j.'job_id'
1. 新增篩選的等值查詢
/**查詢有獎金的員工名、部門名**/
select last_name,department_name
from employeess e,departments d
where e.'department_id' = d.'department_id'
and e.'commission_pct' is not null;
/**查詢城市名中第二個字元為o的城市名和部門名**/
select city, department_name
from department d,location l
where d.'location_id' = l.'location_id'
and city like '_o%';
2. 新增分組的等值查詢
/**查詢每個城市的部門個數**/
select count(*) 部門個數,city
from location l,department t
where l.'location_id' = t.'location_id'
group by city
/**查詢有獎金的每個部門的部門名和部門的領導編號和該部門的最低工資**/
select department_name,d.manager_id,min(salary)
from department d, employees e
where d.'department_id' = e.'department_id'
and commission_pct is not null
group by department_name;
3.新增排序的等值查詢
/**查詢每個工種的工種名和員工的個數,並且按照員工的個數降序排序**/
select job_title,count(*) 員工個數
from job j,employees e
where j.'job_id' = e.'job_id'
group by job_title
order by 員工個數 desc;
4.三表連線的等值查詢
/**查詢員工名、部門名和所在的城市**/
select employee_name,department_name,city
from employees e, departement d,location l
where e.'department_id' = d.'department_id'
and d.'location_id' = l.'location_id';
總結:
多表鏈結查詢的結果為多個表的交集部分表:job_graden表鏈結,至少需要n-1個連線條件
多表的順序沒有要求
一般情況下需要為表起別名
可以搭配排序、分組、篩選來進行使用
grade_level
lowest_sal
highest_sal
a1000
2999
b3000
5999
c6000
9999
d10000
12000
/**查詢員工的工資和工資級別**/
select salary,grade_level
from employees e, job_grade jg
where salary between lowest_sal and highest_sal
/**查詢員工的工資和工資級別為a的工資**/
select salary,grade_level
from employees e, job_grade jg
where salary between lowest_sal and highest_sal
and grade_level = 'a';
表employees結構如下:
employee_id
last_name
manager_id
100k_ing
(null)
101kochhar
100102
de haan
100103
hunold
102104
ernst
103
/**查詢員工名和上級名稱**/
select e.employee_id,e.last_name,m.employee_id,m.last_name
from employees e, employees m
where e.'employee_id' = 'm.manager_id';
MySQL連線查詢 sql92語法
含義 當查詢結果涉及到多個表的字段時,需要使用連線查詢 分類 按年代分 sql92標準 sql99標準 通常使用sql99標準 按功能分 內連線 等值連線 非等值連線 自連線 外連線 左外連線 右外連線 全外連線 交叉連線 等值連線特點 1 多表等值連線的結果為多表的交集部分 2 n表連線,至少需要...
sql92語法,sql99語法,連線查詢
連線查詢的分類 按年代分為sql192標準僅僅支援內連線,sql199標準支援內連線,左外連線,右外連線,交叉連線 按功能分為內連線,外連線,交叉連線 sql92標準 內連線包括1.等值連線 select name,boyname form boys,beauty where beauty.boyf...
MySQL高階6 連線查詢 sql92標準
高階6 連線查詢 含義 又稱多表查詢,當我們查詢的字段來自於多個表時,就會用到 笛卡爾乘積現象 表1有m行,表2有n行,結果為m n行 發生原因,沒有有效的連線條件 如何避免,新增有效的連線條件 分類 按年代分類 sql92標準 僅僅支援內連線 按功能分類 內連線 等值連線 非等值連線 自連線外連線...