SQL语句中的WHERE子句
WHERE 子句用于过滤并提取那些满足指定标准的记录。
where条件中多个条件可以使用AND或者OR来连接。
WHERE 子句中的运算符:
= 等于 <>或者!= 不等于
大于 < 小于
= 大于等于 <= 小于等于
BETWEEN 在某个范围内,select 字段1,字段2... from 表名 where 限制字段 between 值1 AND 值2;
子查询:一个查询需要另外一个查询的结果参与的时候
用于子查询的关键字:in、not in、exists、not exists等
in:语法:select * from 表1 where 表1字段 in(select 表2字段 from 表2 [where 条件]);
或者select * from 表 where 表字段 in(值1,值2,值3,...,值n);
表示:返回表1字段等于括号中返回的表2字段值的所有表1的数据。in后面的子语句必须只返回一个字段
exists:语法:select * from 表1 where exists(select 表2字段 from 表2 [where 条件]);
表示:返回查询结果为true的所有的表1的数据。
例:select t1.name form t1 where exists(select t2.jilu form t2 where t1.id=t2.eid)
解释:返回所有t2表中的eid值等于t1表中id值并且在t2表中eid对应的shuju字段有数据(技术为NULL)的所有t1表中的对应的id的数据。
exists:后面那个子语句有没有查询出记录来,如果查询出记录来返回true,否则就是false,并且查询出来的记录的具体的值是NULL也是没有关系,也是返回true.如果返回true那么表1的该记录输出。
指定模式 :LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
在 SQL 中,通配符与 SQL LIKE 操作符一起使用,在 SQL 中可使用以下通配符:
% 替代 0 个或多个字符 _ (下划线)替代一个字符
[charlist] 字符列中的任何单一字符
1或[!charlist] 不在字符列中的任何单一字符
LIKE后面的匹配字符串要用单引号或双引号包起来。
SELECT * FROM db_name WHERE name LIKE ‘_oo%‘;
表示搜索name值第一个字符随意,第二个和第三个为o,之后字符串不限制的所有的列。
- charlist ↩