在线咨询
QQ咨询
服务热线
服务热线:13125520620
TOP

Sql中条件语名及通配符的介绍-数据库

发布时间:2011-11-12 浏览:4809

在使用ASP中,我们经常会需要通过Select命令从数据库(如Access、Sql Server等)中选取数据,其基本语法构成如下:
Select 列#1,列#2,...,列#n From 表#1,表#2,...,表#n Where 条件 Group By 列#1,列#2,...,列#n Having 条件 Order By 列#1,列#2,...,列#n

这里,我们只简单介绍一下Select命令中的Where条件判断的使用方法。

一般如果只想选取数据表中的部分数据时,此时可以在Select中加上选择的条件,即加上Where子句。在Where子句中,以比较运算符来构成选择的条件,以下是Where子句中使用的比较运算符:
= 等于
!=或<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
Between(Not Between) 介于(不介于)
In(Not In) 列值是否存在于所列的列表内
Is Null(Is Not) 列值是否为Null

可以一次指定数个条件,每个条件间以逻辑运算符Not、And或者Or连接。

我们举例来介绍一下:
1、从数据表Reg表中选取用户积分值(字段expvalue,Int数值型)为1000分的用户记录:
Select * From Reg Where expvalue = 1000

2、从数据表Reg表中选取用户性别(字段usex,Bin逻辑型)为男生,积分值(字段expvalue,Int数值型)大于等于1000分的用户记录:
Select * From Reg Where usex = 'T' And expvalue >= 1000

3、从数据表Reg表中选取用户级别(字段ugrade,Varchar文本型)为管理员,或者用户级别为版主的用户记录:
Select * From Reg Where ugrade = '管理员' Or ugrade = '版主'

4、从数据表Reg表中选取用户级别(字段ugrade,Varchar文本型)为管理员,或者用户级别为版主,同时积分值不等于0分的用户记录:
Select * From Reg Where (ugrade = '管理员' Or ugrade = '版主') And expvalue != 0

5、从数据表Reg表中选取积分值大于1000分,小于2000的用户记录:
Select * From Reg Where expvalue Between 1000 And 2000

6、从数据表Reg表中选取联系地址(字段address,Varchar文本型)为上海市与北京市的用户记录:
Select * From Reg Where SubString(address,1,3) In ('上海市','北京市')
说明,SubStrin为Sql Server函数,如果使用Access,则改用函数Mid。

7、从数据表Reg表中选取MSN(字段umsn,Varchar文本型)为Null的用户记录:
Select * From Reg Where umsn Is Null
如果字段非Null,即为空值,则Where子句改成umsn=''

另外,在Where子句中,还可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符:
% 零或者多个字符
_ 单一任何字符(下划线)
\ 特殊字符
[] 在某一范围内的字符,如[0-9]或者[aeth]
[^] 不在某范围内的字符,如[^0-9]或者[^aeth]

举例说明:
'AB%' “AB”后接任何字符的字串,如AB、AB89、IKABKCE
'_AB' “AB”之前可为任一字符,如tAB、9AB
'AB[a-cdf]' “AB”后接a、b、c、d、f任一字符的字串

从数据表Reg表中选取注册用户名(字段uname,Varchar文本型)为5DM的用户记录:
Select * From Reg Where uname Like '%5DM%'

这些都是Select中Where子句基础的使用介绍。仅适合Sql初学者学习,对于有数据库开发经验的,也可做为一种资料以做索引备查吧。

TAG
软件定制,软件开发,瀚森HANSEN,辽宁,沈阳,抚顺
0
该内容对我有帮助