SQL中的高级条件查询WHERE、IN、NOT模糊查询


关键词:组合WHERE子句,使用IN运算符,NOT运算符,实现模糊查询

AND、OR运算符以及优先级:在WHERE子句中使用AND和OR可以进行逻辑运算,并且AND的优先级高于OR。
 
IN运算符:可以在判断一个变量或者常量是否在某个范围内,例如:X IN (VALUE1,VALUE2,VALUE3),IN运算符还可以将范围制定到一个SELECT语句的结果中例如:select….where in (select …) order by …
In运算符和OR运算符实现的结果是一样的,但是可以简化OR运算符的编写。
 
NOT运算符:用于对一个条件逻辑表达式求反,例如:NOT(来源地=’湖北’ OR 来源地=’湖南’)
 
模糊查询:LIKE运算符实现数据库模糊查询,LIKE运算符只支持字符型数据的查询。
模糊查询所使用的通配符:
ACCESS SQL SERVER ORACLE 说明
_ _ 一个任意字符
* % % 0个或多个任意字符
# 1个数字字符
[] [] 代表指定范围
[!] [^] 代表指定范围之外
举例:
姓名 like ‘张-’精确的指定模糊值为一个字符并且只有两个字的姓张的姓名
姓名 like ‘张%’姓张的所有姓名
出生日期 like ‘%2009%09%’ 
[ab]% 以a或者b开头的字符串
[a-d]% 以a,b,c,d开头的所有字符串
[a-bcd]% 以a,b,c,d开头的所有字符串
a[^b]% 以a开头非b为第二个字符的所有字符串
%200[789]% 代表含有2007,2008,2009三个字符串
 
转义字符:
如果模糊查询中包含了通配符,则必须使用转义字符来代替这个字符。
SQL server:escape
Like ‘%1#%%’ escape ‘#’  表示#后的第一个字符为普通字符
ACCESS:[]
Like ‘*C[#]*’ #本来在ACCESS中代表一个数字,但是用[#]则可以表示为#这个普通字符
ORACLE:\
Like ‘%1\%%’ 包含5%的所有字符串


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM