上一篇:【MySQL必知必会(二)】【检索数据+排序检索数据】
文章目录
一、 过滤数据
使用SELECT语句的WHERE子句指定搜索条件
1.1 使用WHERE子句
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_price = 2.5;
1.1.1 SQL的过滤与应用过滤
数据也可以在应用层过滤。SQL的SELECT语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环,以提取出需要的行。
还有一种方法,对数据库进行了优化,以便快速有效地对数据进行过滤。让客户机应用处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。此外,如果在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将导致宽带的浪费
1.1.2 WHERE子句的位置
在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后
1.2 WHERE子句操作符
1.2.1 检查单个值
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_name = 'fuses';
MySQL在执行匹配时默认不区分大小写
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_price < 10;
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_price <= 10;
1.2.2 不匹配检查
mysql> SELECT vend_id, prod_name
-> FROM products
-> WHERE vend_id <> 1003;
何时使用引号
单引号用来限定字符串。如果值与串类型的列进行比较,需要限定引号。用来与数值列进行比较的值不用引号。
mysql> SELECT vend_id, prod_name
-> FROM products
-> WHERE vend_id != 1003;
1.2.3 范围值检查
为了检查某个范围的值,可使用BETWEEN操作符
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_price BETWEEN 5 AND 10;
1.2.4 空值检查
mysql> SELECT prod_name
-> FROM products
-> WHERE prod_price IS NULL;
表中没有这样的行,所以没有返回数据
mysql> SELECT cust_id
-> FROM customers
-> WHERE cust_email IS NULL;