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

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

img001

数据库单表查询虽然简单,但实际使用当中相当灵活。下面我们从简单查询、条件查询入手进行总结。

1.简单查询。此类查询主要是以集合投影理论为基础,从待选元组中投影出相应的属性。基本的查询表达式形如"select c1,c2...from table where condition"。在这里我们分别以别名、去重、统计元组数目和列运算操作为例进行说明。

①别名。主要是为待查询的表、投影出的属性进行别名操作,以方便我们识别和后续操作。特别是在成熟的数据库客户端软件中,对表进行别名操作,能够实现像面向对象语言中[对象.方法]的操作来方便的操作元组的属性。如:

img001

图 1-1

②去重。主要是对投影出的属性进行强制去重,对于重复的属性只保留一条。

img002

图 1-2

③统计元组数目。这个函数在操作未知数据量的表时相当有用,面对未知数量的数据表时,要谨慎使用类似于"select * from ..."的操作。如:

img003

图 1-3

④列运算。该操作允许对投影出的属性进行简单四则运算,以得出派生属性方便我们操作。下面的列运算实现将价格的单位由元转换为十元。如:

img004

图 1-4

上述操作是针对单表查询的一些最简单的操作,为各种数据库所支持。

2.条件查询。该项查询主要是针对特定的元组属性进行值过滤。不同的数据类型对应不同的操作。下面我们就单一条件、复合条件以及空值处理进行说明。

①单一条件查询:指condition中只使用一个比较符的查询。如算术运算比较符[=,<,>,<=,>=,<>,!=]、包含/排除符号[in,not in]、范围符号[between...and]、匹配符[like]。如:

img005

图 2-1

②复合条件查询:指conditions中包含多个过滤条件的组合。查询包含大型数据量的表时,通过合理的组合条件能够对数据进行较好的过滤,以便进行后续操作。如逻辑运算符[and,or,not]。其中not的优先级最高,and其次,or的优先级最低,同时它们的优先级低于任何一种比较操作符,如果需要实现优先级的调整,可以通过合理的()实现。如:

img006

图 2-2

③空值处理:NULL值用来表示数据库中未知或不确定的值。在实际中,如果忽略NULL,往往会带来错误,且有时候错误极难排查。一般在数据表定义时,如果未指定主键约束或非空约束,极容易出现空值。含有NULL的算数表达式计算结果为NULL,任何带有NULL的比较,返回值为NULL。在实际操作中我们可以通过"is null"进行空值检测,或者如在oracle数据库中提供了NVL(),NVL2(),COALESCE()函数进行空值的处理,如果有感兴趣的同学可以自行查询。下面一则简例说明NULL。

img007

图 2-3

今天我们就以数据库的单表查询为例,从简单查询和复合查询进行了简要总结。下一讲我们将从其它一些简单查询如标量函数、聚集函数、排序等操作入手进行总结。敬请期待!

评论

  • 访客
    2015-11-13 10:48

    谢谢博主的分享~~

    说说
  • 访客
    2015-11-13 15:23

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

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

    喜欢,哈哈哈!!

    说说

雁过留痕