- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《基于工作任务的SQL Server 2008数据库应用》 任务目标 会使用简单子查询获取数据 能使用IN子查询或EXISTS子查询获取数据 会使用T-SQL进行综合查询 通过分组,培养学生的沟通能力及团队协作能力 培养学生分析问题解决问题的能力 使用T-SQL语句实现论坛年度评估: 论坛人气评估:论坛总点击率1000,为“人气熊旺旺”;否则就为“一般般” 年度品牌版块:主帖量最多的版块 年度倒胃版块:主帖量最少的版块 年度回帖人气最旺奖:回帖的点击率排名前2名的版主 年度业绩最差版主:版块点击率低于500或主帖量等于0 客户需求 品牌版块 年度倒胃版块 年度回帖人气最旺会员 年度业绩最差版主 客户需求 假定心酸果冻在“.NET技术”版块发主帖。怯怯的问:“什么是.NET啊?”帖的内容为“微软的.NET广告超过半个北京城啊。”要求使用T-SQL实现以下业务规则: 用户发主帖后,需要更新相应版块(.NET技术版块)的主帖数,主帖数+1 在论坛上发布用户(心酸果冻)的新帖 心酸果冻的新帖 客户需求 主帖的回复数量和点击率都+1 钢镚儿的回复 假定钢镚儿回复主帖:“什么是.NET啊?”,他笑呵呵的回复道:“.NET是微软力推的企业级信息网络共享平台。”要求使用T-SQL实现以下业务规则: 用户回帖后,需要更新对应主帖的信息:回复数量+ 1,点击率+1 用户回帖后,还需要更新对应版块的点击率,点击率+1 在论坛上发布主帖和跟帖 任务分析 第一个客户需求中,显然需要用到子查询。例如:论坛人气评估的实现,需要如下查询来实现。 IF(论坛所有版块的总点击率1000) Print ‘人气熊旺旺,大家辛苦了!’ ELSE Print ‘人气一般般,大家加油啊!’ 而其中的“论坛所有版块的总点击率”需要进一步通过查询来得到。对于年度品牌版块和年度倒胃版块,需要先查询出主帖量最多和最少值,再进一步查询。同理,其他评估内容也非常类似。 任务分析 第二个客户需求中,用户发主帖。 显然要向主帖表(BBSTopic)中插入主帖记录。 先查看主帖表(BBSTopic)的表结构,需要发帖人的账号ID和所在版块ID(SectorID),因此我们需要先查询出“心酸果冻”的账号ID(AccountID)以及“.NET技术”板块的版块ID。 为了使后面的语句能够继续使用这些值,我们还需要定义变量来存放它们。 任务分析 第三个客户需求中,用户回帖。 显然要向回帖表(BBSReply)中插入回帖记录。 先查看回帖表(BBSReply)的表结构,需要发帖人ID、帖子编号(TopicID)和所在版块ID(SectorID)。因此,我们需要先查询出“钢镚儿”的账号ID(AccountID)、按照帖子标题“什么是.NET啊?”查询出帖子编号(TopicID)和所在版块ID(SectorID)。 同样为了使后面的语句能继续使用这些值,我们需要定义变量来存放它们。 任务实施-【信息收集】 什么是子查询? 带有比较运算符的子查询 带有IN和NOT IN的子查询 带有EXISTS和NOT EXISTS的子查询 任务实施-【信息收集】 学员信息表 问题: 编写T-SQL语句,查看年龄比“李斯文”大的学员,要求显示这些学员的信息 ? 分析: 第一步:求出“李斯文”的年龄; 第二步:利用WHERE语句,筛选年龄比“李斯文”大的学员; 子查询和带有比较运算符的子查询 子查询在WHERE语句中的一般用法: SELECT … FROM 表1 WHERE 字段1 (子查询) 外面的查询称为父查询,括号中嵌入的查询称为子查询。 使用比较运算符引入的子查询语法如下: SELECT 列名 FROM 表名 WHERE 表达式 比较运算符(子查询) 任务实施-【信息收集】 带有IN和NOT IN的子查询 在嵌套子查询中,子查询的结果往往是一个集合,所以IN和NOT IN是嵌套子查询中经常使用的关键字。其中,IN表示属于,即外层查询中用于判断的表达式的值与子查询返回的值列表中的一个值相等;NOT IN表示不属于。 使用IN引入的子查询语法如下: SELECT 列名 FROM 表名 WHERE [NOT] IN(子查询) 任务实施-【信息收集】 带有EXISTS和NOT EXISTS的子查询 使用EXISTS关键字引入一个子查询时,就相当于进行一次存在测试。外部查询的WHERE子句测试子查询返回的行是否存在。子查询实际上不返回任何数据;它只返回TRUE或FALSE值。 使用EXISTS引入的子查询语法如下: SELECT 列名 FROM 表名 WHERE [NOT] EXISTS(子查询) 任务实施-【信息收集】 任务实施-【制定计划】 (1)
文档评论(0)