第七节--复杂查询

第七节--复杂查询

ID:43280643

大小:149.00 KB

页数:9页

时间:2019-09-29

第七节--复杂查询_第1页
第七节--复杂查询_第2页
第七节--复杂查询_第3页
第七节--复杂查询_第4页
第七节--复杂查询_第5页
资源描述:

《第七节--复杂查询》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、复杂查询一、分组函数表中包含了许多数据,可以对这些数据按照某个指定的列进行分组,然后使用合计函数计算相应列的合计值。例如,如果需要检索最高薪水和最低薪水的雇员,并返回不同部门中最高薪水和最低薪水的雇员,那么就需要对表中的数据进行分组计算。例如:使用orderby(一)分组函数的格式SELECT[column,]group_function(column)..FROMtable[WHEREcondition][GROUPBYgroup_by_expression][ORDERBYcolumn];(二)常用的分组函数常用的分

2、组函数有:AVG(平均数)、SUM(求和)、COUNT(计数)、MAX(最大值)、MIN(最小值)等1、MAX和MIN用法MAX用于取得列或表达式的最大值,MIN用于取得列或表达式的最小值。这两个函数适用于任何数据类型例如:显示emp表中的最高薪金和最低薪金2、AVG和SUM的用法AVG用于取得列或表达式的平均值,SUM用于取得列或表达式的总和。这两个函数只适用于数字类型。例如:查询emp表中所有雇员的平均工资和工资总和3、COUNT的用法Count函数用于取得计算的总行数。例如:查询表emp中的雇员总数注意:分组函数会

3、忽略NULL行例如:二、GROUPBY和HAVING子句(一)使用GROUPBY和HAVING子句要注意1、GROUPBY必须连用2、GROUPBY可以按多个字段分组3、在分组查询的SELETCT语句中,不使用分组的字段,必须使用GROUPBY分组4、GROUPBY分组的字段可以不出现在SELECT列表中5、分组的结果可以排序(二)GROUPBY进行单列分组单列分组是指基于单列生成分组统计结果。当进行单列分组时,会基于分组列的每个不同值生成一个统计结果例如:显示emp表中每个部门的员工总数(三)GROUPBY进行多列分组

4、多列分组是指基于两个或两个以上的列生成分组统计结果例如:显示每个部门每个岗位的平均工资(四)HAVING的用法HAVING子句用于限制分组统计结果例如:查询薪金合计在9000以上的部门号、工资合计(五)使用GROUPBY注意1、在SELECT列表中的任何列或表达式(非计算列)必须在GROUPBY子句中2、在WHERE子句中不能使用组函数作为条件,只能用非计算列下面这个例子说明了这个问题三、表的连接(一)连接查询连接查询是指基于两个或两个以上的表或视图的查询。常用的连接有:相等连接、不等连接、外连接。例如:Dept表中和e

5、mp表中都有deptno字段,很多情况下要讲表连接查询一些数据(二)笛卡尔乘积笛卡尔乘积的形成,当:1、一个连接条件被遗漏时2、一个连接条件不正确时3、在第一个表中的所有行被连接到第二个表的所有行时为了避免笛卡尔乘积的形成,在WHERE子句中应当总是包含正确的连接条件例如:下面这个例子就形成了笛卡尔积,这些数据的产生是无意义的,这里只是显示了一部分(三)内连接内连接把两个表连接成一个临时表,在这个表中,仅包含那些满足连接条件的记录行。内连接主要有两种形式,等值连接和非等值连接。等值就是在连接列相等的条件下执行的连接操作。

6、非等值连接是指在连接列不相等的连接条件下执行连接操作。1、等值连接a)多表相等连接语法SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.column1=table2.column2在语法中:table1.column指示获取数据的表和列table1.column1=是连接表的条件table2.column2b)多表连接的原则1)在写一个连接表的SELECT语句时,在列名前面用表名可以使语义清楚,并且加快数据库访问。2)如果相同的列名出现在多个表中,

7、列名必须前缀表名。3)为了连接n个表在一起,你最少需要n-1个连接条件。例如,为了连接4个表,最少需要3个连接条件。如果表中有一个连接主键,该规则可能不适用,其中可能有多行用来唯一地标识每一行。c)等值连接的例子2、非等值连接上面的两个图示说明在EMP表中的工资必须在SALGRADE表中的最低工资和最高工资之间例如:查询雇员的薪金等级(四)外连接内连接会返回满足连接条件的记录。连接则是内连接的扩展,不仅返回满足连接条件的所有记录,而且还会返回不满足连接条件的记录上面的查询可以看出部门40中没有雇员1、外连接语法你可以用一

8、个外连接查看那些不满足连接条件的行,外连接运算符是加号(+)外连接的语法如下:table1.column=是连接表在一起的条件。table2.column(+)是外连接符号,它可以放在WHERE子句的条件的任一边,但不能两边都放。(跟着没有匹配行的表中列的名字放置外连接符号)。例如:将dept表中部门编号为40的显示

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。