sql查詢語句 連線語句

2021-07-05 16:44:47 字數 1399 閱讀 8343

若乙個查詢同時涉及兩個以上的表,則稱之為連線查詢。

它包括等值連線,非等值連線,自然連線,自身連線,外連線和復合條件連線

表名1.列名1  連線運算子  表名2.列名2

當連線運算子為等號=時,稱為等值連線;使用其它運算子時,稱為非等值連線。

若在等值連線中把目標列中重複的屬性列去掉則為自然連線。

查詢每個學生及其選修課程的情況。

select student.*, sc.*

from student sc

where student.sno = sc.sno  //這兩個表之間的聯絡是通過公共屬性sno實現的。

連線運算中有兩種特殊情況,一種是自然連線,另一種為廣義笛卡爾積。

廣義笛卡爾積是不帶連線謂詞的連線,兩個表的廣義笛卡爾積即是兩表中元組的交叉乘積,其連線的結果會產生一些沒有意義的元組,所以這種運算實際很少使用。

乙個表與其自己進行連線,稱為表的自身連線。

查詢每一門課的間接先修課。

select firs.cno, second.cpno

from course first, course second

where first.cpno = second.cno

外連線的表示方法為,在連線謂詞的某一邊加符號*。外連線就好像是為符號*所在邊的表增加乙個「萬能」的行,這個行全部又空值組成。它可以和另一邊的表中所有不滿足連線條件的元組進行連線。

如果外連線符出現在連線條件的右邊,成為右外連線,如果外連線符出現在連線條件的左邊,稱為左外連線。

上個例子中只顯示選課學生的資訊,若想顯示沒有選課的學生資訊,就要用到外連線。

select student.sno,sname,s***,sage,sdept,cno,grade

from student,sc

where student.sno=sc.sno(*)

where子句中可以有多個連線條件,稱為符合條件連線。

查詢選修2號課程且成績在90分以上的所有學生。

select student.sno,sname

from student,sc

where student.sno = sc.sno and

sc.cno='2' and

sc.grade>90;

查詢每個學生的學號,姓名,選修的課程名及成績

select student.sno,sname,cname,grade

from student,sc,course

where student.sno = sc.sno and sc.cno = course.cno

SQL連線查詢語句

1.left join left join是以a表的記錄為基礎的,a可以看成左表,b可以看成右表,left join是以左表為準的.換句話說,左表 a 的記錄將會全部表示出來,而右表 b 只會顯示符合搜尋條件的記錄 例子中為 a.aid b.bid b表記錄不足的地方均為null.2.right j...

SQL查詢語句,內連線,外連線

這幾天做軟體綜合設計的專案,我負責的是服務端,因為目前打算從前端轉型到後台,所以需要補足後台相關的知識。關於專案方面的東西就不介紹了,因為文章的主題是sql,直接給出資料表的設計圖。表之間的連線線表示外來鍵。以專案中的查詢為例,講述巢狀查詢語句以及表之間的連線。1 獲取某一問題的所有回答 回答者 回...

SQL語句 連線

sql join 連線子句用於將資料庫中兩個或者兩個以上表中的記錄組合起來。連線通過共有值將不同表中的字段組合在一起 最常用也最重要的連線形式是內連線,有時候也被稱作 equijoin 等值連線 內連線根據連線謂詞來組合兩個表中的字段,以建立乙個新的結果表。sql 查詢會比較逐個比較表 1 和表 2...