第7章操纵数据表中的数据分析.ppt

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

* 7.11.1 并操作 UNION运算符表示并集运算,结果集中包含了执行并操作的结果集中的所有数据。 其基本格式为: subquery UNION [ALL] subquery 【例7.47】查询选修了课程1或者选修了课程2的学生学号。 本查询实际上就是查询选修了课程1的学生集合与选修了课程2的学生集合的并集。 SELECT studentID FROM Grade WHERE courseID = 1 UNION ALL SELECT studentID FROM Grade WHERE courseID = 2 * 在查询结果集中可以看到,结果集中包含了重复数据,这是由于查询语句中使用了ALL关键字的缘故。如果去掉ALL使用DISTINCT关键字,则结果集中不会出现重复值。 该查询也可以用以下语句实现(不包含重复值): SELECT DISTINCT studentID FROM Grade WHERE courseID = 1 OR courseID = 2; * 7.11.2 交操作 【例7.48】查询既选修了1号课程又选修了2号课程的学生学号。 本查询实际上就是查询选修了1号课程的学生集合与选修了2号课程的学生集合的交集。 SQL语句如下: SELECT studentID FROM Grade WHERE courseID = 1 INTERSECT SELECT studentID FROM Grade WHERE courseID = 2 * 该查询等价于以下语句: SELECT studentID FROM Grade X WHERE courseID = 1 AND EXISTS (SELECT * FROM Grade Y WHERE courseID = 2 AND X.studentID=Y.studentID) 思考:如果要查询既选修了课程1又选修了课程2的学生学号和姓名信息的话,又该如何实现呢? * 7.11.3 差操作 【例7.49】查询没有选修课程的学生学号、姓名。 SELECT studentID,studentName FROM Student WHERE studentID IN (SELECT studentID FROM Student EXCEPT SELECT studentID FROM Grade) 先查询得到所有的学生学号,再从中减去(差集)所有选修了课程的学生学号,即是没有选修课程的学生学号。根据学生学号即可得到相应的学生姓名。 本查询也可使用IN查询、EXISTS查询来实现,语句如下: SELECT studentID,studentName FROM Student WHERE NOT EXISTS (SELECT * FROM Grade WHERE Student.studentID=Grade.studentID) * 本章小结 SQL语言的数据查询功能是最丰富、也是最复杂的,本章介绍了数据更新命令和基本的SQL查询语句,使用这些语句可以完成数据的插入、修改和删除,以及数据查询操作,包括基本数据查询、条件查询、嵌套查询、集合查询、连接查询、排序查询、统计函数、分组查询等,为读者学习数据库编程和进行数据库操作打下坚实的基础。 SQL语句查询数据的基本格式为: SELECT select_list [ INTO new_table ] [ FROM table_source ] [ WHERE search_condition ] [ GROUP BY group_by_expression] [ HAVING search_condition] [ ORDER BY order_expression [ ASC | DESC ] ] * 7.9.2 内连接 内联接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与联接条件相匹配的数据行。 (1)等值连接查询 (2)不等值连接查询 (3)自连接查询 * (1)等值连接查询 连接条件或连接谓词中的运算符为等号的连接查询,称为等值连接。 【例7.35】查询每个学生选修课程的情况。 学生信息存放在Student表中,学生选课信息存放在Grade表中,所以本查询实际上涉及Student与Grade两个表。这两个表之间的联系是通过公共属性studentID实现的。 法(一):在FROM子句中指定连接条件 SELECT * FROM student INNER JOIN Grade ON student.studentID = grade .studentID 法(二):在WHERE子句中指定连接条件 SELECT * FROM stud

文档评论(0)

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

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

1亿VIP精品文档

相关文档