Quick Ref.

The Music database

本节介绍join(连接)的概念. 涉及的 music数据库包含两个表: album(专辑表) 和 track(曲目表).

album(asin, title, artist, price, release, label, rank)
track(album, dsk, posn, song) 

关于该数据库的更多信息.

如何进行连接.

SQL短语 FROM album JOIN track ON album.asin=track.album 表示连接albumtrack表.   该JOIN(连接)后,每条曲目对应一条记录.除了曲目表本身的字段   fields (album, disk, posn and song) 外,每条记录还包含专辑表中的对应字段 album (title, artist ...).

1a. 找出包含song(歌曲) 'Alison'的专辑 title(名称) 和 artist(作者)

Results
1b. 哪个artist(作者)录制了song(歌曲) 'Exodus'?

Results
1c. 列出track(曲目表)中所有 属于'Blur'album(专辑)的 song(歌曲)

Results

我们可以在joined table(连接表)上使用aggregate functions(集合函数)和    GROUP BY表达式.

2a. 显示每张album(专辑)的title(名称) 和包含的track曲目数.

Results
2b. 显示每张album(专辑)的 title(名称) 以及曲目名称中包含'Heart'的曲目总数. (如果专辑中如果没有满足条件的曲目,则不要显示该专辑.).

Results
2c. "title track" (主打曲目)就是song(歌名)和  title(专辑名)相同的曲目. 请找出所有的title tracks(主打曲目).

Results
2d. An "eponymous" album(同名专辑)就是专辑名和artist(作者名) 相同的专辑. (例如,乐队 'Blur'的专辑'Blur'就是同名专辑 ). 请列出eponymous albums(同名专辑).

Results
3a. 找出在两张以上专辑中出现过的歌曲. 同时包含出现的次数.

Results
3b. A "good value" album (一张物超所值的专辑)就是专辑中每首歌曲的定价低于 50 pence(便士)的专辑.请找出这些专辑,并显示 title(专辑标题), the price(专辑价格)和 the number of tracks(曲目总数).

Results
3c. Wagner's Ring cycle 的专辑有 173 tracks(曲目), Bing Crosby 的专辑包含101 tracks(曲目).

请根据专辑中包含曲目的多少,从多到少依次列出这些专辑的名称和包含的总曲目数.

Results

下一节我们用Movie database(电影数据库)来介绍一些更复杂的joins.