构建音乐商店NetMusicShop,并实现复杂查询

/*查找收藏歌曲在2首及以上的用户及其收藏的歌曲数*/
SELECT UserRealName,count(collections.SongID)
FROM users,collections,songs
WHERE users.UserName=collections.UserName
AND songs.SongID=collections.SongID
GROUP BY collections.UserName
HAVING COUNT(collections.SongID)>=2;

结果:

/*查找所包含的歌曲数大于等于10首的专辑,显示专辑名和所包含的歌曲数*/
SELECT AlbumName,count(songs.AlbumID)
FROM albums,songs
WHERE albums.AlbumID=songs.AlbumID
GROUP BY songs.AlbumID
HAVING count(songs.AlbumID)>=10;

结果:

/*查找最近10年来(now())的专辑销售情况,列出专辑ID、专辑名称、总销售额,按总销售从高到低排名*/
SELECT albums.AlbumID,AlbumName,sales.TotalPrice
FROM albums,sales
WHERE (now()-albums.AlbumIssueDate)<10
ORDER BY sales.TotalPrice DESC;

/*查询没有被收藏过的歌曲*/
SELECT DISTINCT SongTitle
FROM songs,collections
WHERE songs.SongID NOT IN(SELECT SongID
FROM collections);

/*在购买了歌手"香港杂锦合辑"(刘欢)专辑的客户中查询一次购买数量最多的客户的用户名*/
SELECT orders.ReceiverName
FROM albums,sales,orders
WHERE albums.AlbumSinger='香港杂锦合辑'
AND orders.OrderID=sales.OrderID
AND albums.AlbumID=sales.AlbumID
GROUP BY sales.AlbumID
HAVING MAX(sales.Quantity);

/*查找被所有用户收藏的歌曲(两种实现方式,相关嵌套查询、不相关嵌套查询)*/
SELECT songTitle  /*相关嵌套查询*/
FROM songs y
WHERE NOT EXISTS
(SELECT *
FROM users x
WHERE NOT EXISTS
(SELECT *
FROM collections
WHERE collections.SongID=y.SongID AND collections.UserName=x.UserName));

SELECT DISTINCT SongTitle  /*不相关嵌套查询*/
FROM songs
WHERE SongID IN(SELECT SongID FROM collectionsGROUP BY SongID HAVING COUNT(UserName)=(SELECT COUNT(*) FROM users));

/*查找一首歌曲都没有收藏的用户(两种实现方式:相关嵌套查询、连接查询)*/
SELECT DISTINCT UserRealName  /*嵌套查询*/
FROM collections,users
WHERE users.UserName NOT IN(SELECT UserName
FROM collections);

SELECT DISTINCT UserRealName   /*连接查询*/
FROM users
LEFT JOIN collections ON users.UserName=collections.UserName
WHERE collections.UserName IS NULL;

批量操作及视图练习

/*商家开展“买200赠100”的促销活动,为一次购买某专辑总价格在200元(含)以上的用户的会员卡(字段:User表的UserAdvancePayment)充值100元。(只充值一次)*/
UPDATE users SET UserAdvancePayment='0';
UPDATE users SET UserAdvancePayment=+100
WHERE UserAdvancePayment IN
(SELECT UserAdvancePayment
FROM sales,orders
WHERE sales.OrderID=orders.OrderID
AND users.UserName=orders.UserName
AND sales.TotalPrice>200);

/*新建“专辑销售统计表”Sales_Statis,其结构能存放专辑名、销售量和销售额。将各个专辑销售量和销售额的统计结果存入Sales_Statis表中*/
CREATE TABLE Sales_Statis(
AlbumID int auto_increment primary key,
AlbumName varchar(64) not null,
Quantity int,
TotalPrice numeric(6,2));INSERT
INTO Sales_Statis(AlbumName,Quantity,TotalPrice)
SELECT AlbumName,SUM(Quantity),SUM(TotalPrice)
FROM albums,sales
WHERE albums.AlbumID=sales.AlbumID
GROUP BY AlbumName;

/*创建专辑名为“EyeFever演唱会09”(可自定义其他名称)的歌曲视图SongsByAlbumName,该视图包括“歌曲表”中的所有列以及专辑名称,并按歌曲顺序号由小到大排列*/
CREATE VIEW SongsByAlbumName AS
SELECT s.*,a.AlbumName
FROM albums a,songs s
WHERE AlbumName='Eye Fever演唱会09'
AND s.AlbumID=a.AlbumID;/*将此视图中选择任意SongId,修改歌曲名称为“我就想改改名字看看能不能成功”,看看是否成功?*/
UPDATE SongsByAlbumName SET SongTitle='我就想改改名字看看能不能成功' WHERE SongID=1;
能成功/*将此视图中选择任意SongId,修改歌曲名称为“我就想改改名字看看能不能成功”,专辑名称修改为“我还想改一下专辑试试”,看看是否成功?*/
UPDATE SongsByAlbumName SET AlbumName='我还想改一下专辑试试' WHERE SongID=1;
不能成功

数据库原理与应用 构建音乐商店,实现复杂查询和批量操作及视图练习相关推荐

  1. MVC 音乐商店 第 5 部分: 编辑窗体和模板化

    MVC 音乐商店是介绍,并分步说明了如何使用 ASP.NET MVC 和 Visual Studio 为 web 开发教程应用程序. MVC 音乐商店是一个轻量级的示例存储实现它卖音乐专辑在线,并实现 ...

  2. MVC 音乐商店 第1部分: 概述和文件- 新建项目

    MVC 音乐商店是介绍,并分步说明了如何使用 ASP.NET MVC 和 Visual Studio 为 web 开发教程应用程序. MVC 音乐商店是一个轻量级的示例存储实现它卖音乐专辑在线,并实现 ...

  3. MVC 音乐商店 第 4 部分: 模型和数据访问

    MVC 音乐商店是介绍,并分步说明了如何使用 ASP.NET MVC 和 Visual Studio 为 web 开发教程应用程序. MVC 音乐商店是一个轻量级的示例存储实现它卖音乐专辑在线,并实现 ...

  4. MVC 音乐商店 第 3 部分:Views 和 ViewModels

    MVC 音乐商店是介绍,并分步说明了如何使用 ASP.NET MVC 和 Visual Studio 为 web 开发教程应用程序. MVC 音乐商店是一个轻量级的示例存储实现它卖音乐专辑在线,并实现 ...

  5. MVC 音乐商店 第 10 部分: 导航和网站设计、 结论的最后更新

    MVC 音乐商店是介绍,并分步说明了如何使用 ASP.NET MVC 和 Visual Studio 为 web 开发教程应用程序. MVC 音乐商店是一个轻量级的示例存储实现它卖音乐专辑在线,并实现 ...

  6. MVC 音乐商店 第 6 部分: 使用数据批注模型验证

    MVC 音乐商店是介绍,并分步说明了如何使用 ASP.NET MVC 和 Visual Studio 为 web 开发教程应用程序. MVC 音乐商店是一个轻量级的示例存储实现它卖音乐专辑在线,并实现 ...

  7. 南京工程学院 数据库复习(数据库系统概论复习 及 数据库原理与应用样题)

    一.数据库系统概论 1.1 百度文库 复习文档(需下载券) <数据库系统概论>(王珊.第五版) ★第一章   绪论 v 本章内容:数据库系统概述.数据模型.数据库系统结构 v 本章主要考点 ...

  8. 【渝粤题库】陕西师范大学200781 数据库原理及应用 作业

    <数据库原理及应用>作业 一.选择题 1.在数据管理技术的发展过程中,经历了人工管理阶段.文件系统阶段和数据库系统阶段.在这几个阶段中,数据独立性最高的是____阶段. 数据库系统 B.文 ...

  9. 美团数据库运维自动化系统构建之路

    本文整理自美团点评技术沙龙第10期:数据库技术架构与实践. 美团点评技术沙龙由美团点评技术团队主办,每月一期.每期沙龙邀请美团点评及其它互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域. ...

最新文章

  1. C语言经典例35-字符串反转
  2. TemplateBinding与Binding区别,以及WPF自定义控件开发的遭遇
  3. [react] 状态管理器解决了什么问题?什么时候用状态管理器?
  4. 如果有什么想不开或者放不下的话,看看这里吧!(摘于网络)
  5. 黄聪:wordpress教程
  6. Thrift搭建分布式微服务(四)
  7. 品鉴B500:艺术对技术无乐不作的反击
  8. atitit.http get post的原理以及框架实现java php
  9. Android之调试打印
  10. NLP是百度的核心技术之一
  11. Ubuntu/Win10双系统安全删除Ubuntu的方法
  12. excel两个字符串相减_excel两列相减
  13. 安卓系统怎么连接服务器数据库,安卓服务器连接数据库的方法
  14. 面向对象程序设计(JAVA)复习笔记(下)
  15. OpenStack-Placement组件部署详解(T版)
  16. 2022年4月编程语言排行
  17. Qt开发-QT Widgets
  18. Scoop包管理工具
  19. STM32学习笔记——OLED的使用
  20. 雷达的军事应用 军用 气象 航空航天

热门文章

  1. 农行k宝输入密码黑屏解决方法
  2. 【云和恩墨】zData Light 敏捷助力威海市立医院核心系统性能提升
  3. 匿名社交?无秘模式基本宣告失败
  4. c++中的前置和后置加加没你想的这么简单
  5. 「干货」用 Vue + Echarts 打造你的专属可视化界面(上)
  6. FM33LC02X FreeRTOS MDK 移植记录总结
  7. C语言杨辉三角的程序分析,C语言:打印杨辉三角
  8. 【内网学习笔记】23、SMBExec 与 DCOM 的使用
  9. 云计算导论课后习题第一章
  10. java 页面之间传值_JSP页面间传值方法