首页
>
博客世界
>数据库单表查询小结(二)

数据库单表查询小结(二)

本文我们还是以简单的示例为切入点进行介绍。主要讲解SQL中的函数以及嵌套子查询。

1.SQL函数:包含标量函数和聚集函数。两种函数的写法相同,主要区别是标量函数是元组中的每一行均产生一个结果,而聚集函数通过运算只产生一个结果。下面以示例进行讲解:

①标量函数:如日期函数,通配符使用,数据类型转换以及上一讲中的列值运算。

img001

图 1-1

上述示例中使用了DATEDIFF()函数,用于计算两日期间相差的天数。可以看出上述查询结果返回了满足条件的多个结果。

②聚集函数:包含avg、min、max、sum、count,group by函数,having子句。下面简单的进行示例讲解:

img002

图 1-2

上述示例用以查询学生在某门课程上的最高分。

img003

图 1-3

上述示例用以查询排除指定学生后平均成绩大于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子句)。如下例:

img004

图 2-1

上述示例用于查询成绩大于指定课程平均成绩的所有学生。

在这一讲中我们介绍了单表查询的常用函数以及嵌套子查询。在实际工作中需要注意:

①在进行复杂查询操作时,需要主要对NULL值进行处理,否则会影响标量函数集聚集函数的结果。

②实际工作中尽量减少通配符如like,排序等操作,因为在表数据量未知的情况下,此类操作会耗用大量资源。

评论

  • 访客
    2015-11-20 12:33

    谢谢博主的分享~~

    说说
  • 访客
    2015-11-20 16:53

    虽然是基础,但仍值得一看!

    说说
  • 访客
    2015-11-21 00:13

    喜欢,哈哈哈!!

    说说

雁过留痕