本文我们还是以简单的示例为切入点进行介绍。主要讲解SQL中的函数以及嵌套子查询。
1.SQL函数:包含标量函数和聚集函数。两种函数的写法相同,主要区别是标量函数是元组中的每一行均产生一个结果,而聚集函数通过运算只产生一个结果。下面以示例进行讲解:
①标量函数:如日期函数,通配符使用,数据类型转换以及上一讲中的列值运算。
上述示例中使用了DATEDIFF()函数,用于计算两日期间相差的天数。可以看出上述查询结果返回了满足条件的多个结果。
②聚集函数:包含avg、min、max、sum、count,group by函数,having子句。下面简单的进行示例讲解:
上述示例用以查询学生在某门课程上的最高分。
上述示例用以查询排除指定学生后平均成绩大于75分的课程。
关于聚集函数的特殊说明:
①在select操作中,聚集函数之外的属性必须在group by的属性中体现。即展示出的属性信息包含于group by的属性列表中;
②having子句的谓词必须在group by之后使用,而where子句中的谓词在group by之前使用。如在图1-3中先执行where过滤条件,其次执行group by,再执行having子句,最后执行order by进行结果排序。
2.嵌套子查询
此处主要讲解基于单表的嵌套子查询,形如select * from where condition (select子句)。如下例:
上述示例用于查询成绩大于指定课程平均成绩的所有学生。
在这一讲中我们介绍了单表查询的常用函数以及嵌套子查询。在实际工作中需要注意:
①在进行复杂查询操作时,需要主要对NULL值进行处理,否则会影响标量函数集聚集函数的结果。
②实际工作中尽量减少通配符如like,排序等操作,因为在表数据量未知的情况下,此类操作会耗用大量资源。
评论
2015年11月20日
admin
1206
1206