第5讲 复杂数据查询.ppt

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

An Introduction to Database Systems 第5讲 复杂数据查询 6.1.3 查询结果处理 排序输出(order by) 重定向输出(into) 输出合并(union) 分组统计(group by )与筛选(having) 使用(compute)和(compute by)子句汇总 1. 排序输出(ORDER BY) 语法格式: ORDER BY order_by_expression1[ASC|DESC] [,order_by_expression2[ASC|DESC]] [,…]] 例6-10 对employee表,按性别顺序列出员工的编号、姓名、性别、部门编号及工资,性别相同的再先按部门后按工资由高到低排序。 SELECT employee_id,employee_name,sex,department_id,wages FROM employee ORDER BY sex,department_id,wages DESC 练习 1.以class降序显示student表的所有记录 2.以学号升序,所在班级降序显示student表 select * from student order by class desc,sno 2. 重定向输出(INTO) 语法格式: INTO new_table SELECT * INTO studentnew FROM student WHERE sex = ‘男 3. 输出合并(UNION) 语法格式: ??? [UNION [ALL] SELECT语句] 合并的规则是: ??? (1)不能合并子查询的结果。 ??? (2)两个SELECT语句必须输出同样的列数。 ??? (3)两个表各相应列的数据类型必须相同,数字和字符不能合并。 ??? (4)仅最后一个SELECT语句中可以用ORDER BY子句,且排序选项必须依据第一个SELECT列表中的列。 例6-12 对employee表,列出部门编号为“D001”或“D002”的所有员工姓名。 SELECT employee_name,department_id FROM employee WHERE department_id=D001 UNION SELECT employee_name,department_id FROM employee WHERE department_id=D002 4. 分组统计(GROUP BY)与筛选(HAVING) 语法格式: GROUP BY group_by_expression1 [,group_by_expression2][,…] ? 例6-13 对employee表,分别统计男女员工人数。 SELECT sex,COUNT(sex) as 人数 FROM employee GROUP BY sex 例6-14 对employee表,分别统计各部门男女员工的人数。 SELECT department_id, sex,COUNT(*) as 人数 FROM employee GROUP BY department_id,sex 例6-15 对employee表,列出部门平均工资大于2000的部门编号。 SELECT department_id,AVG(wages) AS 平均工资 FROM employee GROUP BY department_id HAVING AVG(wages)=2000 WHERE子句与HAVING子句的区别 WHERE作用于表和视图,对表和视图作整体的限定 HAVING子句作用于组,对分组后组内部做进一步条件限定 先来看一个查询语句 USE PUBS SELECT type,price FROM titles WHERE Price10 练习 显示SCORE选课表中每名学生选修课程的数目 select sno,count(cno) from score group by sno 显示超过5名学生选课的课程人数 select cno,count(sno) from score group by cno having count(sno)5 练习 显示学生所选课程中最低分大于70,最高分小于90的sno列 select sno from score group by sno having min(degree)70 and max(degree)90 练习 按平均分数值降序显示score表中所有课程都及格,但不包括课程号为C8的课程的所有学生各自的平均成绩 select sno,avg(degree) from score where cnoc8 group by sno having mi

文档评论(0)

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

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

1亿VIP精品文档

相关文档