- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七节--复杂查询
复杂查询
一、分组函数
表中包含了许多数据,可以对这些数据按照某个指定的列进行分组,然后使用合计函数计算相应列的合计值。
例如,如果需要检索最高薪水和最低薪水的雇员,并返回不同部门中最高薪水和最低薪水的雇员,那么就需要对表中的数据进行分组计算。
例如:使用order by
(一)分组函数的格式
SELECT [column,] group_function(column) . .
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];
(二)常用的分组函数
常用的分组函数有:AVG (平均数)、SUM (求和)、COUNT (计数)、
MAX (最大值)、MIN (最小值)等
1、MAX和MIN用法
MAX 用于取得列或表达式的最大值,MIN用于取得列或表达式的最小值。这两个函数适用于任何数据类型
例如:显示emp表中的最高薪金和最低薪金
2、AVG和SUM的用法
AVG用于取得列或表达式的平均值,SUM用于取得列或表达式的总和。 这两个函数只适用于数字类型。
例如:查询emp表中所有雇员的平均工资和工资总和
3、COUNT的用法
Count函数用于取得计算的总行数。
例如:查询表emp中的雇员总数
注意:分组函数会忽略NULL行
例如:
二、GROUP BY和HAVING子句
(一)使用GROUP BY和HAVING子句要注意
1、GROUP BY 必须连用
2、GROUP BY 可以按多个字段分组
3、在分组查询的SELETCT 语句中,不使用分组的字段,必须使用GROUP BY分组
4、GROUP BY 分组的字段可以不出现在SELECT列表中
5、分组的结果可以排序
(二)GROUP BY进行单列分组
单列分组是指基于单列生成分组统计结果。当进行单列分组时,会基于分组列的每个不同值生成一个统计结果
例如:显示emp表中每个部门的员工总数
(三)GROUP BY进行多列分组
多列分组是指基于两个或两个以上的列生成分组统计结果
例如:显示每个部门每个岗位的平均工资
(四)HAVING的用法
HAVING子句用于限制分组统计结果
例如:查询薪金合计在9000以上的部门号、工资合计
(五)使用GROUP BY注意
1、在SELECT 列表中的任何列或表达式(非计算列)必须在GROUP BY 子句中
2、在WHERE 子句中不能使用组函数作为条件,只能用非计算列下面这个例子说明了这个问题
三、表的连接
(一)连接查询
连接查询是指基于两个或两个以上的表或视图的查询。常用的连接有:相等连接、 不等连接、外连接。
例如:Dept表中和emp表中都有deptno字段,很多情况下要讲表连接查询一些数据
(二)笛卡尔乘积
笛卡尔乘积的形成,当:
1、一个连接条件被遗漏时
2、一个连接条件不正确时
3、在第一个表中的所有行被连接到第二个表的所有行时
为了避免笛卡尔乘积的形成,在WHERE 子句中应当总是包含正确的连接条件
例如:下面这个例子就形成了笛卡尔积,这些数据的产生是无意义的,这里只是显示了一部分
(三)内连接
内连接把两个表连接成一个临时表,在这个表中,仅包含那些满足连接条件的记录行。
内连接主要有两种形式,等值连接和非等值连接。等值就是在连接列相等的条件下执行的连接操作。非等值连接是指在连接列不相等的连接条件下执行连接操作。
1、等值连接
a) 多表相等连接语法
SELECT table1.column, table2.column
FROM table1, table2 WHERE table1.column1 =table2.column2
在语法中:
table1.column 指示获取数据的表和列
table1.column1 = 是连接表的条件 table2.column2
b) 多表连接的原则
1)在写一个连接表的 SELECT 语句时,在列名 前面用表名可以使语义清楚,并且加快数据库访问。
2) 如果相同的列名出现在多个表中,列名必须前缀表名。
3) 为了连接 n 个表在一起,你最少需要 n-1 个连接条件。例如,为了连接 4 个表,最少需要 3 个连接条件。如果表中有一个连接主键,该规则可能不适用,其中可能有多行用来唯一地标识每一行。
c) 等值连接的例子
2、非等值连接
上面的两个图示说明在EMP 表中的工资必须在SALGRADE 表中的最低工资和最高工资之间
例如:查询雇员的薪金等级
(四)外连接
内连接会返回满足连接条件的记录。连接则
您可能关注的文档
- 议论文阅读的方法.doc
- 自然科学类文章阅读要点.doc
- 让春光染绿我们双脚学案.doc
- 育才小升初提升专练2.doc
- 育才小升初专练3.doc
- 职场上最不受待见的 6 种说话方式.doc
- 西院微波技术基础试卷模拟B及答案-2013.doc
- 老公没“断奶” 我做了他的免费保姆.doc
- 西瓜批发几分钱一斤没人要.doc
- 裙房灰土回填方案1.doc
- 统编版四年级上册语文 第四单元神话群文阅读 课件(共15张PPT).pptx
- Unit 3 How old are you? 第2课时课件(共16张PPT).pptx
- 10 雨点儿 课件(2024年完整版).pptx
- 义务教育七年级历史上册2024年版第11课西汉建立和“文景之治”【课件】.pptx
- Unit 4 My Favourite Subject 单词短语句子语法专练(含答案) 人教版七年级上册.docx
- Unit 3 It's a colourful world! Hit it big, Wrap up & Let’s explore课件(共27张PPT)e课件(共27张PPT)34.pptx
- Unit 3 It's a colourful world! Start up课件(共32张PPT)(2024年完整版).pptx
- 人教版(2019)选择性必修 第四册Unit1 Science and fction Period 3 Using language 2 课件(共59张PPT).ppt
- 3 粉印纸版画 课件(共20张PPT)苏少版美术三年级上册.pptx
- 人教版(2019)选择性必修 第四册Unit3 Sea exploration Using language 1课件(共17张,内嵌音频).ppt
文档评论(0)