若乙個查詢同時涉及兩個以上的表,則稱之為連線查詢。
它包括等值連線,非等值連線,自然連線,自身連線,外連線和復合條件連線
表名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...