SQLServer与数据库应用开发.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLServer与数据库应用开发

【案例6.26】查询参加了课程号为’001’的课程考试的学生学号、课程号、成绩及所有学生本门课程的平均成绩。 代码如下: USE TestDB GO SELECT * FROM tb_score where cos_num =001 COMPUTE avg(score) GO 在查询分析器中输入并执行上述代码,结果如图6-21所示。在显示详细查询记录的同时,单独有一条统计记录。 6.2 简单查询 6.2 简单查询 图6-21 compute统计查询 图6-22 compute by统计查询 【案例6.27】查询参加了课程考试的学生学号、课程号、成绩及每门课程的平均成绩。 代码如下: USE TestDB GO SELECT * FROM tb_score order by cos_num COMPUTE avg(score) by cos_num GO 在查询分析器中输入并执行上述代码,结果如图6-22所示。在显示详细查询记录的同时,每种课程单独有一条统计记录。 这种查询属于分类汇总。代码中COMPUTE BY子句之前使用了ORDER BY子句,原因是必须先按分类字段排序之后才能使用COMPUTE BY子句进行分类汇总。COMPUTE BY与GROUP BY子句的区别在于:前者既显示统计记录又显示详细记录,后者仅显示分组统计的汇总记录。 6.2 简单查询 6.2.6 用查询结果生成新表 在实际的应用中,有时需要将查询结果保存成一个表,这可以通过SELECT语句中的INTO子句实现。完整语法格式如下: SELECT select_list [INTO new_table_name] FROM table_list [WHERE search_conditions] [GROUP BY group_by_expression] [HAVING search_ conditions] [ORDER BY order_ expression [ASC|DESC] ] 其中: ● 新表名是被创建的新表,查询的结果集中的记录将添加到此表中。 ● 新表的字段由结果集中的字段列表决定。 ● 如果表名前加“#”则创建的表为临时表。 ● 用户必须拥有该数据库中建表的权限。 ● INTO子句不能与COMPUTE子句一起使用。 6.2 简单查询 【案例6.28】从“tb_score”查询学生成绩信息,并分别使用学号、课程号、成绩别名,将查询结果添加到新表tb_score_0中。 USE TestDB GO SELECT stu_num as 学号, cos_num as 课程号, score as 成绩 INTO tb_score_0 FROM tb_score GO select * from tb_score_0 GO 执行结果见图6.23。 思考:如果想生成一个与原表一样结构,但不插入数据,怎么实现? 6.2 简单查询 如果查询得不到记录,也会产生结构一样的新表。 6.2 简单查询 图6-23 用查询结果生成新表 图6-24 合并查询结果 6.2.7 合并结果集 使用UNION语句可以将多个查询结果集合并为一个结果集,也就是集合的合并操作。 UNION 子句的语法格式如下: SELECT语句 UNION SELECT语句 [,…n] 其中: ???????●?参加UNION操作的各结果集的列数必须相同,对应的数据类型也必须相同。 ??????●?系统将自动去掉并集的重复记录。 ● 最后结果集的列名来自第一个SELECT语句。 6.2 简单查询 【案例6.29】从“tb_stu”中分别查询“物联网121”与“炼油121”的学生信息,最后合并输出显示。 代码如下: USE TestDB GO select * from tb_stu where class_name =物联网 union select * from tb_stu where class_name =炼油 GO 结果如图6-24. 6.2 简单查询 前面所讲的查询是单表查询。若一个查询同时涉及两个或两个以上的表的数据,则称为连接查询。连接查询是关系数据库中最主要的查询,包括交叉连接查询、内连接查询、外连接查询和复合条件连接查询等。 6.3.1 交叉连接 交叉连接是将A表的所有记录与B表的所有记录都进行连接,结果集的列是两个表的列的和,记录是两个表记录数的乘积,其连接的结果会产生一些没有意义的记录,并且进行该操作非常耗时。因此该运算实际很少使用,仅供

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8010045112000002

1亿VIP精品文档

相关文档