MySQL WHERE数据过滤(一)

说明:本文所使用的数据库样例表创建脚本下载地址:https://github.com/zhaoxd298/mysql_scripts

  在SELECT语句中,可以对数据根据WHERE子句指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出,其格式如下所示:

SELECT 列名
FROM 表名
WHERE 搜索条件;

WHERE子句位置:WHERE子句应位于表名(FROM子句)之后。在同时使用ORDER BY子句时,ORDER BY应该位于WHERE之后,否则将产生错误。

1.WHERE子句操作符
  下表列出WHERE子句的所有条件操作符:
 MySQL WHERE数据过滤(一)_第1张图片

2.检查单个值

下面例子列出产品名为fuses的产品:

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_name = 'fuses';

执行结果:
MySQL WHERE数据过滤(一)_第2张图片

下面例子列出价格小于10美元的所有产品:

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_price <= 10;

执行结果:
MySQL WHERE数据过滤(一)_第3张图片

3.不匹配检查

  以下例子列出不是由供应商1003制造的所有产品:

mysql> SELECT vend_id, prod_name    
    -> FROM products
    -> WHERE vend_id <> 1003;

运行结果:
MySQL WHERE数据过滤(一)_第4张图片

符号“!=”和“<>”的作用是相同的,下面用“!=”实现上面例子:

mysql> SELECT vend_id, prod_name    
    -> FROM products
    -> WHERE vend_id != 1003;

4.范围值检查

  BETWEEN操作符用于检查某个范围的值。其语法和其他WHERE语法稍有不同,如下所示:

WHERE 列名 BETWEEN 最小值 AND 最大值;

  下面例子检索出价格在5美元到10美元之间的所有产品:

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_price BETWEEN 5 AND 10;

运行结果:
MySQL WHERE数据过滤(一)_第5张图片

5.空值检查

  在创建表时,表设计人员可以指定其中的列是不是可以不包含值。在一个列不包含值时,称其为包含空值NULL。子句IS NULL用来检查具有NULL值的列,其语法如下:

WHERE 列名 IS NULL;

  下面例子列出没有电子邮件地址的顾客:

mysql> SELECT cust_id
    -> FROM customers
    -> WHERE cust_email IS NULL;

运行结果:
MySQL WHERE数据过滤(一)_第6张图片

你可能感兴趣的:(MySQL)