ORACLE SQL多表查詢

2021-09-14 04:35:06 字數 1110 閱讀 7345

使用連線在多個表中查詢資料

在 where 子句中寫入連線條件

在表中有相同列時,在列名之前加上表名字首

(1)等值連線 (=)

(2)非等值連線(in)

例:查詢每個員工的 last_name 和 grade_level(在 job_grades 表中). ---- 非等值連線

select last_name, salary, grade_level, lowest_sal, highest_sal

from employees e, job_grades j

where e.salary >= j.lowest_sal and e.salary <= j.highest_sal

(3)外連線

兩個表在連線過程中除了返回滿足連線條件的行以外還返回左(或右)表中不滿足條件的行,這種連線稱為左(或右) 外連線。

兩個表在連線過程中除了返回滿足連線條件的行以外還返回兩個表中不滿足條件的行 ,這種連線稱為滿外連線。

(4)自連線

通過一條 sql 查詢(自連線):

select m.*from employees e, employees m

where e.manager_id = m.employee_id and e.last_name = 『chen』

(5)1999語法連線

(6)自然連線

例:select department_id, department_name, location_id, city

from departments

natural join locations;

(7) using 子句建立連線

• 在natural join 子句建立等值連線時,可以使用 using 子句指定等值連線中需要用到的列。

• 使用using可以在有多個列滿足條件時進行選擇

• 不要給選中的列中加上表名字首或列名

• join 和using 子句經常同時使用

(8)使用on 子句建立連線

• 自然連線中是以具有相同名字的列為連線條件的

• 可以使用on 子句指定額外的連線條件

• 這個連線條件是與其它條件分開的

• on子句使語句具有更高的易讀性

多表查詢 多表查詢 多表查詢

查詢語法 select 列表名稱 from 表明列表 where 笛卡爾積 有兩個集合a,b,取這兩個集合的所有組成情況 要完成多表查詢,需要消除無用的資料 多表查詢分類 1 內連線查詢 1 隱式內連線 使用where消除無用的資料 例子 select t1.name,t1.gender,t2.na...

oracle sql查詢日曆

查詢當前時間所在月份的日曆 select sum d1 星期日,sum d2 星期一,sum d3 星期二,sum d4 星期三,sum d5 星期四,sum d6 星期五,sum d7 星期六 from select decode d,1,l d1,decode d,2,l d2,decode d...

oracleSQL基本查詢

create table dept deptno number primary key,dname nvarchar2 50 log nvarchar2 50 select from dept for update create table enp empno number primary key,...