本文将讲总结如何使用SELECT语句的WHERE子句指定搜索条件。
1、使用WHERE子句
数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件( search criteria) ,搜索条件也称为过滤条件( filtercondition) 。
在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名( FROM子句)之后给出,如下所示:
mysql> select prod_name, prod_price
-> from products
-> where prod_price = 2.50;
2、WHERE子句操作符
MySQL支持下表列出的所有条件操作符:
操作符 | 说明 |
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
between | 在指定的两个值之间 |
(1)检查单个值
mysql> select prod_name, prod_price
-> from products
-> where prod_price < 10;
(2)不匹配检查
以下例子列出不是由供应商1003制造的所有产品:
mysql> select vend_id, prod_name
-> from products
-> where vend_id <> 1003;
下面的sql语句检查WHERE prod_name=‘fuses’语句,它返回prod_name的值为Fuses的一行。 MySQL在执行匹配时默认不区分大小写,所以fuses与Fuses匹配。
mysql> select prod_name, prod_price
-> from products
-> where prod_name=’fuses’;
单引号用来限定字符串。如果将值与串类型的列进行比较,则需要限定引号。用来与数值列进行比较的值不用引号。
(3)检查值范围
为了检查某个范围的值,可使用BETWEEN操作符。
mysql> select prod_name, prod_price
-> from products
-> where prod_price between 5 and 10;
BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。
(4)空值检查
在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。
SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。其语法如下:
mysql> select cust_id
-> from customers
-> where cust_email is null;
Comments