- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大型数据库应用第4章 查询课件
4.1 基本查询 UNION:输出合并 [例1]输出海尔和西门子的产品编号,产品名称 ,并按产品名称升序排列。 select 产品编号,产品名称 from 产品表 where 产品名称 like 海尔% union select 产品编号,产品名称 from 产品表 where 产品名称 like ‘西门子% order by 产品名称 4.1 基本查询 UNION:输出合并 在第一个SELECT语句中可以设置新列名。 select 产品编号,产品名称 as 海尔与西门子 from 产品表 where 产品名称like 海尔% union select 产品编号,产品名称from 产品表 where 产品名称like ‘西门子% order by 海尔与西门子 4.1 基本查询 GROUP BY:分组统计 使用GROUP BY子句对查询结果进行分组。 格式: GROUP BY group_by_expression1 [,group_by_expression2][,……n] 4.1 基本查询 Group By子句可以将查询结果按指定列进行分组,该列值相等的记录为一组。 通常在每组中通过集合函数来计算一个或多个列。 若在分组后还要按照一定的条件进行筛选,则需要使用HAVING子句。 4.1 基本查询 GROUP BY:分组统计 [例1]统计各类电器的数量。 select 产品名称,count(*) as 产品数量 from 产品表 group by 产品名称 4.1 基本查询 GROUP BY:分组统计 [例2]统计海尔公司的各种电器的种类。 select 产品名称,count(*) as 产品种类 from 产品表 group by 产品名称 having 产品名称 like 海尔% 4.1 基本查询 GROUP BY:分组统计 [例]统计海尔公司的各种电器的库存量。 select 产品名称,sum(库存量) as 产品数量 from 产品表 group by 产品名称 having 产品名称 like 海尔% 4.1 基本查询 select 产品名称,count(*) as 产品种类from 产品表 group by 产品名称 having 产品名称 like 海尔% select 产品名称,count(*) as 产品种类from 产品表 where 产品名称 like 海尔% group by 产品名称 1.HAVING子句与WHERE子句一样,也可以起到筛选记录的功能, 但作用的对象不同。WHERE的对象是行;HAVING的对象是组。 2. HAVING子句必须与GROUP BY子句连用。 3.如果既有WHERE子句又有HAVING子句,则先执行WHERE子句 后进行有条件的分组,即GROUP BY 和HAVING子句。 对比 以上两例结果一致,但效率来比,后者先筛选记录,减少了分组以及计数运算,效率较高 4.1 基本查询 GROUP BY:分组统计 [例3]显示库存量超过1000的产品名称。 use cpxs select 产品名称,sum(库存量) from 产品表 group by 产品名称 having sum(库存量)1000 4.1 基本查询 GROUP BY:分组统计 [例4]对employees表(YGGL数据库),分别统计各部门男女员工的人数。 Select departmentid , sex ,count(*) as 人数 from employees Group by departmentid, sex 4.1 基本查询 使用group by 子句后,select子句中的列表只能包含在group by中指出的列,或在聚合函数中使用的列。 Cube或rollup用来在查询结果中增加附加记录。 4.1 基本查询 如果查询语句的select子句为select a,b,c*d,则不能使用的group by子句是( ) A. group by b B. group by a,b,c,d C. group by a,b,c+d D. group by a,b,c*d A、C 4.1 基本查询 【例】在XSCJ数据库上产生一个结果集,包括每个专业的男生、女生人数。 SELECT zy, xb , COUNT(*) AS 人数 FROM XS GROUP BY zy,xb 结果包含: 1.每个专业的男生、女生人数 4.1 基本查询 【例4.43】在XSCJ数据库上产生一个结果集,包括每个专业的男生、女生人数、总人数及学生总人数。 SELECT zy, xb , COUNT(*) AS 人数 FROM XS GROU
原创力文档


文档评论(0)