数据库单表查询虽然简单,但实际使用当中相当灵活。下面我们从简单查询、条件查询入手进行总结。
1.简单查询。此类查询主要是以集合投影理论为基础,从待选元组中投影出相应的属性。基本的查询表达式形如"select c1,c2...from table where condition"。在这里我们分别以别名、去重、统计元组数目和列运算操作为例进行说明。
①别名。主要是为待查询的表、投影出的属性进行别名操作,以方便我们识别和后续操作。特别是在成熟的数据库客户端软件中,对表进行别名操作,能够实现像面向对象语言中[对象.方法]的操作来方便的操作元组的属性。如:
②去重。主要是对投影出的属性进行强制去重,对于重复的属性只保留一条。
③统计元组数目。这个函数在操作未知数据量的表时相当有用,面对未知数量的数据表时,要谨慎使用类似于"select * from ..."的操作。如:
④列运算。该操作允许对投影出的属性进行简单四则运算,以得出派生属性方便我们操作。下面的列运算实现将价格的单位由元转换为十元。如:
上述操作是针对单表查询的一些最简单的操作,为各种数据库所支持。
2.条件查询。该项查询主要是针对特定的元组属性进行值过滤。不同的数据类型对应不同的操作。下面我们就单一条件、复合条件以及空值处理进行说明。
①单一条件查询:指condition中只使用一个比较符的查询。如算术运算比较符[=,<,>,<=,>=,<>,!=]、包含/排除符号[in,not in]、范围符号[between...and]、匹配符[like]。如:
②复合条件查询:指conditions中包含多个过滤条件的组合。查询包含大型数据量的表时,通过合理的组合条件能够对数据进行较好的过滤,以便进行后续操作。如逻辑运算符[and,or,not]。其中not的优先级最高,and其次,or的优先级最低,同时它们的优先级低于任何一种比较操作符,如果需要实现优先级的调整,可以通过合理的()实现。如:
③空值处理:NULL值用来表示数据库中未知或不确定的值。在实际中,如果忽略NULL,往往会带来错误,且有时候错误极难排查。一般在数据表定义时,如果未指定主键约束或非空约束,极容易出现空值。含有NULL的算数表达式计算结果为NULL,任何带有NULL的比较,返回值为NULL。在实际操作中我们可以通过"is null"进行空值检测,或者如在oracle数据库中提供了NVL(),NVL2(),COALESCE()函数进行空值的处理,如果有感兴趣的同学可以自行查询。下面一则简例说明NULL。
今天我们就以数据库的单表查询为例,从简单查询和复合查询进行了简要总结。下一讲我们将从其它一些简单查询如标量函数、聚集函数、排序等操作入手进行总结。敬请期待!
评论
2015年11月13日
admin
1206
1206