where 看似比较简单 也有需要注意的地方
如where中的操作符<>和!=作用是一样的,但是有的DBMS不支持<>,或者!=.
在判断属性是否为空的时候 需要 使用IS NULL 而不是=null。不为空同理为 NOT NULL 而不是 !=NULL
where AND 和OR操作符,AND的操作符的优先级会高于OR。OR判断的时候如果前一个条件为真的时候后一个条件无需判断
一个简单例子:select a,b,c from A where a>10 or b>10 and c<10.
这个语句相当于 :select a,b,c from A where a>10 or (b>10 and c<10).如果a>10成立后面都不需要计算。
比较和:select a,b,c from A where (a>10 or b>10) and c<10的区别。
IN操作相当于多个OR操作。IN比多个OR操作更加简洁,同时IN最大优点可以包含其他SELECT语句,使得能够动态地建立WHERE子句。
LIKE 可以对文本进行匹配,想应的通配符有% _ []
一个简单的例子:select a from A where a LIKE '%[abc]_%'
%代表0个1个或者多个字符,_代表一个字符,[]代码一个在[]中存在的字符。
上面的语句的意思是选出 首字符为任意字符,也可以为空,后一个字符为abc三个字符中的一个,其后至少有一个或者多个字符。
也可以使用^,表示不使用[]中的值。