第4章 关系数据库的结构化查询语言(查询2).ppt

第4章 关系数据库的结构化查询语言(查询2).ppt

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

4.3 T-SQL数据查询功能 4.3.1 数据基本查询 4.3.2 数据分组查询 4.3.3 多表连接查询 4.3.4 数据子查询 4.3.5 附加子句 [例26] 查询学生总人数。 SELECT COUNT(*) FROM Student ? [例27] 查询选修了课程的学生人数。 SELECT COUNT(*) FROM SC SELECT COUNT(DISTINCT sno) FROM SC 注:用DISTINCT以避免重复计算学生人数 SELECT COUNT(DISTINCT cno) FROM SC [例28] 计算1号课程的学生平均成绩。 SELECT AVG(Grade) FROM SC WHERE Cno= 1 ? [例29]查询选修1号课程的学生最高分数。 SELECT MAX(Grade) FROM SC WHER Cno= 1 对查询结果分组 使用GROUP BY子句分组 细化集合函数的作用对象 未对查询结果分组,集合函数将作用于整个查询结果 对查询结果分组后,集合函数将分别作用于每个组 使用GROUP BY子句分组 题目:求每个班级学生身高的最高值 SELECT 班级,MAX(身高) FROM 学生表 GROUP BY 班级 [例30]求各个课程号及相应的选课人数。 SELECT Cno, COUNT(Sno) FROM SC GROUP BY Cno 结果 Cno COUNT(Sno) 1 22 2 34 3 44 4 33 5 48 注意 GROUP BY子句的作用对象是查询的中间结果表 分组方法:按指定的一列或多列值分组,值相等的为一组 使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性和集合函数(最少出现一个) 使用HAVING短语筛选最终输出结果 [例31]查询选修了3门以上课程的学生学号。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 3 使用HAVING短语筛选最终输出结果 只有满足HAVING短语指定条件的组才输出. HAVING短语与WHERE子句的区别:作用对象不同 WHERE子句作用于基表或视图,从中选择满足条件的元组。 HAVING短语作用于组,从中选择满足条件的组。 4.3 T-SQL数据查询功能 4.3.0 概述 4.3.1 数据基本查询 4.3.2 数据分组查询 4.3.3 多表连接查询 4.3.4 数据子查询 4.3.5 附加子句 连接查询 同时涉及多个表的查询称为连接查询 用来连接两个表的条件称为连接条件 一般格式: [表名1.]列名1 比较运算符 [表名2.]列名2 比较运算符:=、、、=、=、!= SQL中连接查询的主要类型 (交叉查询)广义笛卡尔积 等值连接(含自然连接) 非等值连接查询 自身连接查询 外连接查询 复合条件连接查询 一、 (交叉查询)广义笛卡尔积 交叉连接是将两个表不加任何约束地组合起来,在数学上就是两个表的笛卡儿积。交叉连接的语法如下: SELECT 投影的字段列表 FROM 表1, 表2 或者 SELECT 投影的字段列表 FROM 表1 CROSS JOIN 表2 例: SELECT Student.* , SC.* FROM Student, SC 在实际应用中,使用交叉连接产生的结果集没什么意义,很少使用,但在理论研究上有重要的作用。 SQL中连接查询的主要类型 (交叉查询)广义笛卡尔积 等值连接(含自然连接) 非等值连接查询 自身连接查询 外连接查询 复合条件连接查询 等值连接 连接运算符为 = 的连接操作 [表名1.]列名1=[表名2.]列名2 注意:任何子句中引用表1和表2中同名属性时,都必须加表名前缀。引用唯一属性名时可以加也可以省略表名前缀。 等值连接 假设Student表、SC表分别有下列数据: Student表 SC表 [例32]查询每个学生及其选修课程的情况 SELECT Student.*,SC.* F

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档