SQL資料庫連線查詢

2022-05-04 02:51:07 字數 2782 閱讀 7027

連線查詢

連線概述:

定義:根據各個資料庫表之間的邏輯關係從二個或多個資料表中檢索資料。

注 意:1、連線的兩個字段必須資料型別和值域相同。

2、盡量在表的主鍵上的基礎上,指定連線條件。

連線分類

連線查詢分為以下幾類:

內連線:基本內連線、多表連線、自連線

外連線:左外連線、右外連線、全外連線、交叉連線

內連線概述

內連線方式:

1、在select語句的where子句中使用比較運算子給出連線條件對錶進行連線.

2、用表名1 inner join 表名2 on 連線條件 語句進行連線,join指定需要連線的資料表,on指定連線條件(inner可省略)。

語法:

select 欄位1,欄位2,……

from 表1 inner join 表2 on 連線條件

內連線— …inner join… on…

【例】查詢學生資料庫中每個學生的情況和選修的課程情況

select * from student inner join subject on student.學號=subject.學號
【例】查詢選修了課程號為2且成績在80分以上的學生姓名和成績

select 姓名,成績 from student inner join subject  

on student.學號=subject.學號

where 課程號=2 and 成績》=80

多表連線

功能:多表連線主要用於兩個以上的表之間的查詢。

語法:

select…from 表1 join 表2 on 條件1

join 表3 on 條件2

join 表4 on 條件3

……

多表內連線案例

【例】從資料庫grade中查詢學生的姓名、課程名和成績

select  姓名,課程名,成績    from student 

join subject on student.學號=subject.學號

join course on course.課程號=subject.課程號

*自連線(特殊的內連線)

功能:自連線查詢乙個表中各行之間的關係。主要用於比較乙個表中  各個記錄之間的值,規範化的資料庫中很少使用自連線

【例】查詢選修了不同課程成績相同的學生的學號、課程號和成績

select a.學號,a.課程號,a.成績 

from subject a join subject b

on a.成績=b.成績 and a.課程號<>b.課程號

外連線

left outer join
左外連線,結果集中除了包括滿足連線條件的行外,還包括左表所有行。

right outer join
右外連線,結果集中除了包括滿足連線條件的行外,還包括右表所有行。

full outer join
全外連線,結果集中除了包括滿足連線條件的行外,還包括兩個表的所有行。

select  欄位名1,欄位名2……欄位n  from  

表1 left outer join 表2 on 連線條件

----表1 right outer join 表2 on

----表1 full outer join 表2 on

左/右/全外連線案例

【例】查詢所有學生情況及他們選修的課程號,若學生未選修任何課程,也要包括其情況。

select student.*,課程號 from student left outer join subject           

on student.學號=subject.學號

查詢被選修了的課程的選修情況和所有開設的課程名。

select subject.*,課程名 from subject right join course

on course.課程號=subject.課程號

cross join交叉連線(乘集)

功能:

交叉連線將從被連線的表中返回所有可能的記錄組合(如:乙個表8條記錄,另乙個表9條記錄,結果將返回72條 記錄)。一般用於資料庫建立測試資料,或為清單及企業模版建立所有可能的組合資料。

語法:

select 欄位1,欄位2,……

from 表1 cross join 表2

【例】返回student表和course表所有可能記錄的組合

select 學號,姓名,課程號,課程名

from student cross join course

--提示cross join可以基於兩個以上的表,不能帶where語句

內連線和外連線的區別

內連線必滿足所有條件;

外連線在滿足條件同時,還要滿足方向性中的所有行

SQL資料庫連線查詢

連線查詢 連線概述 定義 根據各個資料庫表之間的邏輯關係從二個或多個資料表中檢索資料。注 意 連線的兩個字段必須資料型別和值域相同。2 盡量在表的主鍵上的基礎上,指定連線條件。連線分類 連線查詢分為以下幾類 內連線 基本內連線 多表連線 自連線 外連線 左外連線 右外連線 全外連線 交叉連線 內連線...

資料庫SQL實戰之連線查詢

查詢各個部門當前 to date 9999 01 01 領導當前薪水詳情以及其對應部門編號dept no 利用左連線實現 select s.d.dept no from salaries s left join dept manager d on s.emp no d.emp no where d....

Oracle 資料庫連線查詢SQL語句

內連線 inner join 外連線 全連線 full join 左連線 left join 右連線 right join 交叉聯接 cross join 外連線與內連線不一樣,外連線返回的查詢結果中不僅包含符合條件的行,還包括左程式設計客棧表 左外連線 右表 右外連線 或者兩個連線表 全外連線 中...