数据库实验NetMusicShop(三)

实验内容

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 ;

猜你喜欢

转载自blog.csdn.net/u012681167/article/details/49467091