深入淺出SQL教程之SELECT語句中的表連線

2021-04-17 02:45:33 字數 1173 閱讀 3216

為了從兩個或多個表中選出資料,我們一般使用

表連線來實現這個功能。

本節介紹join(連線)的概念.為此我們準備了兩個試驗用表:album(**表)和track(曲目表).

**表:包含200首來自amazon的**cd的概要資訊。

album(asin,title,artist,price,release,label,rank)

曲目表:每張**中的曲目(因為是**cd,所以也可叫歌曲)的詳細資訊。

track(album,dsk,posn,song)

sql短語fromalbumjointrackonalbum.asin=track.album表示連線album和track表。

其中,album.asin表示**的惟一標識號,track.album表示曲目表中和**關聯的**號。

連線後,得到乙個臨時表,該臨時表中每條記錄包含的字段由兩部分組成,

除了**表中的對應欄位album(title,artist...),還包含曲目表的所有欄位track(album,disk,posnandsong)。

有了這張臨時表,很多查詢就容易實現了。

看看一些具體的例項,

一、列出歌名為'alison'的**名稱和作者

selecttitle,artist

fromalbumjointrack

on(album.asin=track.album)

wheresong='alison'

顯然,歌名、**名稱和作者分別在兩個表中,必需使用

表連線來完成這個查詢。

二、哪個artist錄製了歌曲'exodus'

selectartist

fromalbumjointrackon(asin=album)

wheresong='exodus'

用作連線的兩個欄位asin,album因為在兩個表中都是惟一的,所以不一定要加表名作為字首。

但為了方便理解,建議使用字首,形如:album.asin=track.album

三、列出曲目表中所有屬於'blur'**的歌曲

selectsong

fromalbumjointrackon(asin=album)

wheretitle='blur'

如果我們把 albumjointrackon(asin=album) 看成乙個臨時表的話,join的概念就很好理解了。

深入淺出SQL系列教程之SQL語言簡介

sql是結構化查詢語言 structuredquerylanguage 的縮寫。這種語言允許我們對進行複雜的操作。sql語言的使用範圍非常廣泛。許多資料庫產品都支援 sql語言,這意味著如果我們學會了 sql語言,我們可以把這種知識運用到ms或,以及非常多的其它資料庫中。sql語言運用在關係型資料庫...

深入淺出SQL教程之巢狀SELECT語句1

巢狀select語句也叫子查詢,形如 select name from bbc where region select region from bbc where name brazil 乙個 select 語句的查詢結果可以作為另乙個語句的輸入值。上面的sql語句作用為獲得和 brazil 巴西 ...

深入淺出SQL教程之巢狀SELECT語句

深入淺出sql教程之巢狀select語句 巢狀select語句也叫子查詢,形如 select name from bbc where region select region from bbc where name brazil 乙個 select 語句的查詢結果可以作為另乙個語句的輸入值。上面的s...