首页 理论教育 SQLServer2008:WHERE条件查询技巧

SQLServer2008:WHERE条件查询技巧

时间:2023-11-02 理论教育 版权反馈
【摘要】:图5-5WHERE单条件查询2.多条件查询对数据库表作条件查询的时,如果有多个查询条件作限制的查询,那么就是多条件查询。图5-6WHERE多条件查询其中,<匹配串>可以是一个完整的字符串,也可以含有通配符“%”或“_”。现在我们讲解在WHERE条件表达式中,利用谓词BETWEEN...AND...和NOT BETWEEN...AND...查询属性列值在(或不在)指定范围内的记录。

SQLServer2008:WHERE条件查询技巧

数据库表进行查询时,往往只查询数据库表的一部分数据,即限定条件进行查询,因为这样带条件的查询,更能有效地检索到满足客户需求的数据。比如去银行查询存款账户余额时,不能查询出本账户之外的其余账户的信息。如果你能查询出别人的账户信息,那么数据库就没有安全性可言。所以数据库提供了带条件查询方法。

1.单条件查询

在对数据库表作条件查询的时候,如果只有一个查询条件,那么就是单条件查询。

例如,我们需要查询电子商城购物系统的orders(订单信息表)表中CusID(客户代码)为“1005”的客户订单信息。如示例代码5-9,执行结果如图5-5所示。

图5-5 WHERE单条件查询

2.多条件查询

对数据库表作条件查询的时,如果有多个查询条件作限制的查询,那么就是多条件查询。

例如,需要查询电子商城购物系统的orders(订单信息表)表中Amount(订单货物数量)大于10,且PayAmount(支付总金额)大于1000.00的信息。如示例代码5-10,执行结果如图5-6所示。

3.使用通配符查询

在查询数据库时,只知道要查询的数据的部分内容,不知道要查询数据的完整信息。在查询中就需要用到模糊查询,使用通配符(“%”或“_”)就可以实现。

使用通配符查询语法规则如示例代码5-11所示。

图5-6 WHERE多条件查询

其中,<匹配串>可以是一个完整的字符串,也可以含有通配符“%”或“_”。前者代表任意长度的字符串,后者代表单个字符。

例如,a%b表示以a开头以b结尾的任意长度的字符串;a_b表示以a开头b结尾长度为3的字符串。

假如,我们需要查询电子商城购物系统的customer表(客户信息表)中字段Address(地址)的数据值中含有“河”的所有记录,如示例代码5-12,执行结果如图5-7所示。

如果在LIKE前加上NOT关键字,表示查询与之不匹配的数据库记录行信息。如示例代码5-13,执行结果如图5-8所示。

从图5-7和图5-8可以看到以下信息:

(1)图5-7查询结果

电子商城购物系统的customer中字段Address数据值中含有“河”的所有记录。

图5-7 使用通配符查询

(www.xing528.com)

图5-8 使用NOT与通配符配合的查询

(2)图5-8查询结果

电话商城购物系统的customer中字段Address数据值中不含有“河”的所有记录。

4.使用NULL值的查询

在条件表达式中,查询出属性列值为NULL的记录,语法规则如示例代码5-14所示。

假如,需要从电子商城购物系统的customer(客户信息表)表中查询出Address(地址)数据值为NULL的记录信息,如示例代码5-15,执行结果如图5-9所示。

图5-9 使用NULL值的查询

与使用通配符的NOT LIKE查询类似,NOT NULL就是查询列值为非NULL的数据库记录信息,如示例代码5-16,执行结果如图5-10所示。

5.确定属性值范围的查询

在数据库查询应用中,经常需要查询某个时间段内的数据记录,或按某个时间段进行数据统计。如公司财务部门经常以一个月初至月末为时间段进行公司收入和支出的统计等。现在我们讲解在WHERE条件表达式中,利用谓词BETWEEN...AND...和NOT BETWEEN...AND...查询属性列值在(或不在)指定范围内的记录。其中BETWEEN后是范围的下限,AND后是范围的上限,其基本语法规则如示例代码5-17所示。

图5-10 使用NOT NULL值的查询

假如,需要查询电子商城购物系统的customer表(客户信息表)中,字段CusID(客户代码)的数据值在“1005”至“1007”之间的所有客户信息,如示例代码5-18,执行结果如图5-11所示。

图5-11 使用BETWEEN...AND...确定属性值范围的查询

如果需要查询数据库表某列值,在某个范围之外的记录,则需要使用NOT BETWEEN...AND...谓词进行查询。

假如,需要查询电子商城购物系统的customer表(客户信息表)中字段CusID(客户代码)的数据值不在“1005”至“1007”之间的所有客户信息,如示例代码5-19,执行结果如图5-12所示。

图5-12 使用NOT BETWEEN...AND...确定属性值范围的查询

从图5-11和图5-12可以看出,分别使用BETWEEN...AND...和NOT BETWEEN...AND...对同一个表、同一个字段、相同的上下限进行数据库表查询,对输出结果集来说是互补查询。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈