- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(第六讲)第7章数据库查询
例7-35可以用自连接来实现,程序如下: USE 教学库 SELECT a.学号, a.姓名, a.专业 FROM 学生表 a, 学生表 b WHERE a. 专业=b. 专业 AND b. 姓名=刘玲玲 需要特别指出的是,子查询的SELECT语句不能使用ORDER BY子句,ORDER BY子句只能对最终查询结果排序。 【例7-36】在“教学库”中查询“C007”号课的考试成绩比“郑辉”高的学生的学号和姓名。 USE 教学库 SELECT 学生表.学号,姓名 FROM 学生表,选课表 WHERE 学生表.学号 = 选课表.学号 and 课程号=C007 and 成绩(SELECT 成绩 FROM 选课表 WHERE 课程号=C007 and 学号=(SELECT 学号 FROM 学生表 WHERE 姓名=郑辉)) 2. SOME、ANY、ALL和IN子查询 ALL和ANY操作符的常见用法是结合一个比较操作符对一个数据列子查询的结果进行测试。 它们测试比较值是否与子查询所返回的全部或一部分值匹配。比如说,如果比较值小于或等于子查询所返回的每一个值,= ALL将是true;只要比较值小于或等于子查询所返回的任何一个值,= ANY将是true。SOME是ANY的一个同义词。 【例7-37】查询“教学库”中网络专业年龄最大的学生的学号和姓名。 USE 教学库 SELECT 学号,姓名 FROM 学生表 WHERE 年龄= ALL (SELECT 年龄 FROM 学生表 WHERE 专业=网络) AND 专业=网络 【例7-38】查询“教学库”中与任何网络专业同龄的学生的信息。 USE 教学库 SELECT * FROM 学生表 WHERE 年龄= ANY (SELECT 年龄 FROM 学生表 WHERE 专业=网络) SELECT * FROM 学生表 WHERE 年龄 in (SELECT 年龄 FROM 学生表 WHERE 专业=网络) 实际上,IN和NOT IN操作符是= ANY和 ALL的简写。也就是说,IN操作符的含义是“等于子查询所返回的某个数据行”,NOT IN操作符的含义是“不等于子查询所返回的任何数据行”。 【例7-39】在“教学库”中查询选修了“C001”号课程的学生姓名和所在专业。 USE 教学库 SELECT 姓名,专业 FROM 学生表 WHERE 学号 IN (SELECT 学号 FROM 选课表 WHERE 课程号=C001) 7.2 分组和汇总 使用聚合函数返回的是所有行数据的统计结果。如果需要按某一列数据的值进行分类,在分类的基础上再进行查询,就要使用GROUP BY子句了。分组技术是指使用GROUP BY子句完成分组操作的技术。 GROUP BY子句的语法结构如下: [ GROUP BY [ ALL ] group_by_expression [,…n] [ WITH { CUBE | ROLLUP } ] ] 7.2.1 普通(简单)分组 如果在GROUP BY子句中没有使用CUBE或ROLLUP关键字,那么表示这种分组的技术是简单分组技术。 【例7-21】查询“教学库”中男生和女生的人数。 USE 教学库 SELECT 性别,count(性别) 人数 FROM 学生表 GROUP BY 性别 注意:指定 GROUP BY 子句时,选择列表中任意非聚合表达式内的所有列都应包含在 GROUP BY 列表中(不能使用别名列),或者 GROUP BY 表达式必须与选择列表表达式完全匹配。 当完成数据结果的查询和统计后,可以使用HAVING关键字来对查询和统计的结果进行进一步的筛选。 【例7-22】在“选课表”中查询选修了两门及以上课程的学生学号和选课数。 USE 教学库 SELECT 学号,COUNT(课程号) 选修课程数 FROM 选课表 GROUP BY 学号 HAVING COUNT(课程号)=2 HAVING与 WHERE 子句的区别是: WHERE 子句式对整表中数据筛选满足条件的行;而HAVING子句是对GROUP BY分组查询后产生的组加条件,筛选出满足条件的组。 另外,WHERE中条件不能使用聚合函数,HAVING中条件一般使用聚合函数。 7.2.2 CUBE和ROLLUP 的使用 1. CUBE 指定在结果集内不仅包含由 GROUP BY 提供的行,还包含汇总行。GROUP BY 汇总行针对每个可能的组和子组组合在结果集内返回。GROUP BY 汇总行在结果中显示为 NULL,但用来表示所有值。 结果集内的汇总行数取决于 GROUP BY 子句内包含的列数。GROUP BY 子句中的每个操作数(列)绑定在分组 NULL 下,并且分组
您可能关注的文档
- 低温甲醇洗装置管道安装施工方案讲述.doc
- 低温甲醇洗超限设备吊装方案分段版004讲述.doc
- 八年级说明文导学(李华)概要.ppt
- (常考知识梳理)2015届高考语文总复习句子基本知识.doc
- (常考知识梳理)2015届高考语文总复习《考试大纲》规定的九种修辞方法例说.doc
- 公修心理学:第十章性格概要.ppt
- 八金属和金属材料概要.ppt
- 公共关系学ppt5概要.ppt
- (已打印)江苏省南京市、盐城市2015届高三第二次模拟考试化学试题(Word版含答案).doc
- 消防设施设备类型安全培训概要.ppt
- 2024年度党员干部民主生活会班子对照检查材料.docx
- 公司党委领导班子2024年度民主生活会对照检查材料4个带头方面.docx
- 市府办(政府办)领导班子2024年民主生活会会后综合情况报告.docx
- 在2025年市司法局信息宣传工作推进会上的讲话.docx
- 在2025年全省文化旅游高质量发展推进会上的讲话.docx
- 在2025年全区工业、住建大规模设备更新推进会上的讲话.docx
- 党支部2024年组织生活会民主评议党员情况总结报告_1.docx
- 2024年度组织生活会个人对照检查剖析材料.docx
- 镇党委书记2024年度民主生活会对照检查材料1.docx
- 党支部2024年组织生活会民主评议党员情况总结报告.docx
最近下载
- 日本日立变频器sj300系列调试参考手册.pdf
- 苏教版三年级下册含有小括号的混合运算教学设计.docx
- 施工安全管理员工培训.pptx VIP
- 禽流感课件(共23张PPT)《动物疫病防治》.pdf VIP
- 在2024年度组织生活会和民主评议党员会上的点评讲话+民主评议党员会议议程.doc VIP
- 天然苏打水标准.pdf VIP
- 理光MPC3004 3504 4504 6004SP维修手册.pdf VIP
- 部编版四年级下册语文5琥珀ppt课件设计 (3).ppt
- 第六节:隋唐统一多民族国家的发展.ppt VIP
- 兴文县2025年第一次公开考调公务员 (参照管理人员)(30人)笔试模拟试题及答案解析.docx
文档评论(0)