where子句:
返回column_name=250的行:
select * from table_name where column_name=250;
TIPS:
SQL过滤与应用过滤:数据可以在应用层过滤,单这种实现并不令人满意:
1)数据库进行了优化,快速有效对数据进行过滤;
2)客户端应用处理数据库的工作会影响应用的性能,并且使应用完全不具备可伸缩性;
3)服务器不得不通过网络发送多余的数据,将导致网络带宽的浪费
where子句操作符
| 操作符 | 说明 |
|---|---|
| = | 等于 |
| <> | 不等于 |
| != | 不等于 |
| < | 小于 |
| <= | 小于等于 |
| > | 大于 |
| >= | 大于等于 |
| BETWEEN | 在指定的两个值之间 |
检索单个值:
column_name=’abc’
select column_name1, column_name2 from table_name where column_name1=’abc’;
MySQL执行匹配时默认不区分大小写,因此上面语句能匹配到column_name1=’ABC’的行
column_name < 10
select column_name1, column_name2 from table_name where column_name1 < 10;
column_name <= 10
select column_name1, column_name2 from table_name where column_name1 <= 10;
不匹配检查:
column_name <> 100
select column_name1, column_name2 from table_name where column_name1 <> 100;
TIPS:
值的单引号用于限定字符串,如果和字符串对比就无需单引号
范围值检查:
column_name BETWEEN 5 AND 10
select column_name1, column_name2 from table_name where column_name1 between 5 and 10;
检索结果会包含[5,10]区间内的数据行(包含=5/10的数据行)
空值检查:
column_name IS NULL
select column_name1, column_name2 from table_name where column_name1 is null;
将返回column_name1为空的数据行
TIPS:
NULL与不匹配:当查询column_name<>5时,不会返回column_name=NULL的行
