數據庫多表聯合查詢附簡單例子

多表聯合檢索:

SQL語句:

Select 用逗號隔開的一排列名

From 表名1,表名2, …

Where 檢索條件+連接條件

相當於語句

如果沒有檢索條件+連接條件,同理於笛卡爾積
在這裏插入圖片描述

θ連接之等值連接:

例如:按"001"號課成績由高到低順序顯示所有學生的姓名(二表連接)

Select Sname From Student, SC
Where Student.S# = SC.S# and SC.C# = ‘001’
Order By Score DESC;

按數據庫成績由高到低順序顯示所有同學姓名(三表連接+排序)

Select Sname From Student, SC, Course
Where Student.S# = SC.S# and SC.C# = Course.C# and Cname = ‘數據庫’
Order By Score DESC;
示例圖:
在這裏插入圖片描述

多表連接時,如兩個表的屬性名相同,則需採用表名.屬性名方式來限定該屬性是屬於哪一個表

重名處理:

應用場景:連接運算涉及到重名的問題,如兩個表中的屬性重名,連接的兩個表重名(同一表的連接)等,因此需要使用別名以便區分

SQL語句:

Select 列名1 as 別名1,列名2 as 別名2……

From 表名1 as 表名1,表名2 as 表名2……

Where 檢索條件+連接條件

是的"as"可以省略,當定義了別名後,在檢索條件中可以使用別名來限定屬性

例如:①求既學過001號課又學過002號課的所有學生的學號

Select S1.S# From SC S1, SC S2
Where S1.S# = S2.S# and S1.C#=‘001’ and S2.C#=‘002’;
②求001號課成績比002號課成績高的所有學生的學號

在這裏插入圖片描述

同一表的連接示例圖:
在這裏插入圖片描述

————————————————
版權聲明:本文爲CSDN博主「Jaihk662」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/jaihk662/article/details/80136375

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章