4-2 sl语言.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
练习 关系:图书(书号,书名,作者,出版社,单价)BOOK(Bno, Bname, Author, Press, Price) 查询“数据库”一书的书号和单价 查询单价在20至50元之间的图书信息 查询北京某出版社出版的图书信息 查询作者是张一,王二,刘三的书的信息 查询所有图书的书号,书名和半价信息 查询缺少出版社信息的图书的书号和书名 三、对查询结果排序 ORDER BY 子句 可对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,缺省值为升序 四、使用集函数 实例 五、对查询结果分组 (1)GROUP BY子句 含义:用GROUP BY子句将查询的结果按指定的列进行分组,即将指定列值相同的元组分为同一个组。 目的:细化聚集函数的作用对象 未对查询结果分组,聚集函数将作用于整个查询结果 对查询结果分组后,聚集函数将分别作用于每个组 ,即相当于每个分组均有一个函数值。 使用GROUP BY子句分组 例3.33 查询每门课程的课程号及相应的选课人数。 SELECT Cno, COUNT(Sno) FROM SC GROUP BY Cno; GROUP BY子句的作用对象是查询的中间结果表 分组方法:按指定的一列或多列值分组,值相等的为一组 使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性和集函数 对查询结果分组 (续) (2)HAVING短语。 含义:按一定的条件对分组进行筛选,即把符合指定条件的分组进行输出。 HAVING短语与WHERE子句的区别 作用对象不同。WHERE子句作用于基表或视图,从中选择满足条件的元组; HAVING短语作用于组,从中选择满足条件的组。 执行查询时,在按照GROUP BY子句分组之前先去除不满足WHERE子句中条件的元组,而HAVING子句中的条件在分组之后被应用。 HAVING子句可以在条件中包含聚集函数,但WHERE子句中不能包含。 使用HAVING短语筛选最终输出结果 例题:查询选修了3门以上课程的学生学号。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*)3; 例3.34 查询至少有3门以上课程成绩在90分以上的学生的学号 SELECT Sno FROM SC WHERE Grade=90 GROUP BY Sno HAVING COUNT(*)3; 练习 数据库模式如下: 仓库(仓库号,负责人) 货物(货物号,货物名,货物描述) 入库记录(货物号,仓库号,数量,入库日期,经办人号) 用SQL实现以下查询要求: 查询仓库中有多少种不同的货物 查询每天入库数量的最大值 统计2003年3月20日以后每天入库的货物总数量 按货物号统计每一种货物在仓库中的总数量 查询“A-001”号经办人当日经办的入库记录数 3.3.2 连接查询 连接(Join)查询 查询涉及两个以上的表(在FROM子句中体现) From 子句 对应于关系代数中笛卡儿乘积运算, 它给出待扫描的关系/表(指定多个表),给出连接条件 连接查询的类型 等值连接查询 非等值连接查询 自然连接查询 自身连接查询 外连接查询 符合条件连接查询 一、等值与非等值连接查询 连接条件的形式 [表名1.]列名1 比较运算符 [表名2.]列名2 比较运算符: = (等值连接)、、、=、=、!= 连接字段必须是可比的 [表名1.]列名1 BETWEEN [表名2.]列名2 AND [表名2.]列名3 连接查询的执行过程 首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中的一个元组。表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2。重复上述操作,直至表1中的全部元组都处理完毕为止。 例子 例32 查询每个学生及其选修课程的情况学生情况存放Student表中,学生选课情况存放在SC表中,所以本查询实际上涉及Student与SC两个表。通过公共属性Sno实现联系 自然连接和广义笛卡尔积连接 自然连接 等值连接的特例 在等值连接的基础上将目标列中重复的属性去掉 广义笛卡尔积连接 不带连接条件的连接 结果是两表中元组的交叉乘积 二、自身连接 一个表与其自己进行连接 实例 三、外连接(Outer Join) 外连接与普通连接的区别 普通连接操作只输出满足连接条件的元组 外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出 外连接分为左外连接、右外连接和全外连接。外连接的语法格式为: SELECT 目标列表达式 [,目标列表达式]… FROM 表名1 [LEFT | RIGH

文档评论(0)

puu81122 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档