实验内容
1、复杂数据查询
(1)通过观察表数据及表结构,画出User表、Album表、Song表、Collections表、Orders、Sale表、MusicCategory表的E-R图结构。
(反向工程)
(2)查找所包含的歌曲数大于等于10首的专辑,显示专辑名和所包含的歌曲数(上次没完成的同学接着完成)
上次已完成。
(3)列出演唱流行歌曲的歌手名单(流行/Pop)
(4)查找最近5年来的专辑销售情况,列出专辑ID、专辑名称、总销售额,按总销售从高到低排名。
上题改一下,查找最近5年来总销售额位列前3名的专辑ID、专辑名称、总销售额,又该如何处理呢?(top n)
(5)查询没有被收藏过的歌曲
(6)最后,将数据库备份一份,并尝试恢复是否能成功,若没问题带走。
备份方式1:分离、附加
备份方式2:文件备份
部分代码:
--()查找最近年来的专辑销售情况,列出专辑ID、专辑名称、总销售额,
--按总销售从高到低排名。
select Sale.AlbumID,AlbumName,sum(TotalPrice)
from Sale left outer join Orders on (Sale.OrderID=Orders.OrderID)
LEFT outer join Album on (Album.AlbumID=Sale.AlbumID)
where
datediff(year,OrderDate,getdate())<=5
group by Sale.AlbumID,AlbumName
order by AlbumName,sum(TotalPrice)desc
--上题改一下,查找最近年来总销售额位列前名的专辑ID、专辑名称、总销售额,
--又该如何处理呢?(top n)
select top 3 Sale.AlbumID,AlbumName,sum(TotalPrice)
from Sale left outer join Orders on (Sale.OrderID=Orders.OrderID)
LEFT outer join Album on (Album.AlbumID=Sale.AlbumID)
where
datediff(year,OrderDate,getdate())<=5
group by Sale.AlbumID,AlbumName
order by AlbumName,sum(TotalPrice)desc
--()查询没有被收藏过的歌曲
select Songs.SongID ,SongTitle
from Songs left outer join Collections on (Songs.SongID=Collections.SongID)
where CollectionID is null ;