Database - 读书笔记--SQL必知必会04--过滤数据



4.1 使用WHERE子句

在SELECT语句中,数据根据WHERE子句中指定搜索条件进行过滤。
搜索条件(search criteria)也称为(filter condition)。
WHERE子句在表名之后使用。同时使用ORDER BY和WHERE子句时,ORDER BY位于WHERE之后。

MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price=3.49;
+---------------------+------------+
| prod_name           | prod_price |
+---------------------+------------+
| Fish bean bag toy   |       3.49 |
| Bird bean bag toy   |       3.49 |
| Rabbit bean bag toy |       3.49 |
+---------------------+------------+
3 rows in set (0.00 sec)

MariaDB [sqlbzbh]> 
MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price = 3.49 ORDER BY prod_name;
+---------------------+------------+
| prod_name           | prod_price |
+---------------------+------------+
| Bird bean bag toy   |       3.49 |
| Fish bean bag toy   |       3.49 |
| Rabbit bean bag toy |       3.49 |
+---------------------+------------+
3 rows in set (0.00 sec)

MariaDB [sqlbzbh]> 

4.2 WHERE子句操作符

等于: = 
不等于:!= 或者 <>

大于:> 
小于:<

大于等于:>= 
小于等于:<=

不大于:!> 
不小于:!<

在指定的两个值之间:BETWEEN
为NULL值:IS NULL

4.2.1 检查单个值

MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price < 10;
+---------------------+------------+
| prod_name           | prod_price |
+---------------------+------------+
| Fish bean bag toy   |       3.49 |
| Bird bean bag toy   |       3.49 |
| Rabbit bean bag toy |       3.49 |
| 8 inch teddy bear   |       5.99 |
| 12 inch teddy bear  |       8.99 |
| Raggedy Ann         |       4.99 |
| King doll           |       9.49 |
| Queen doll          |       9.49 |
+---------------------+------------+
8 rows in set (0.00 sec)

MariaDB [sqlbzbh]> 

4.2.2 不匹配检查
如果将值与字符串类型的列进行比较,就需要使用单引号来限定字符串。
用来与数值列进行比较的值不用引号。

MariaDB [sqlbzbh]> SElECT vend_id, prod_name FROM Products WHERE vend_id <> 'DLL01';
+---------+--------------------+
| vend_id | prod_name          |
+---------+--------------------+
| BRS01   | 8 inch teddy bear  |
| BRS01   | 12 inch teddy bear |
| BRS01   | 18 inch teddy bear |
| FNG01   | King doll          |
| FNG01   | Queen doll         |
+---------+--------------------+
5 rows in set (0.00 sec)

MariaDB [sqlbzbh]> 

4.2.3 范围值检查
使用BETWEEN操作符检查某个范围的值时,必须指定范围的开始值和结束值,而且这两个值必须用AND关键字分隔。

MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10;
+--------------------+------------+
| prod_name          | prod_price |
+--------------------+------------+
| 8 inch teddy bear  |       5.99 |
| 12 inch teddy bear |       8.99 |
| King doll          |       9.49 |
| Queen doll         |       9.49 |
+--------------------+------------+
4 rows in set (0.00 sec)

MariaDB [sqlbzbh]> 

4.2.4 空值检查
在一个列不包含值时,称为包含空值NULL,表示无值(no value)。
注意:在进行匹配过滤和非匹配过滤时,不会返回含NULL值的行。参考:http://www.cnblogs.com/sesexxoo/

MariaDB [sqlbzbh]> SELECT prod_name FROM Products WHERE prod_price IS NULL;
Empty set (0.00 sec)

MariaDB [sqlbzbh]> 
MariaDB [sqlbzbh]> SELECT cust_name FROM Customers WHERE cust_email IS NULL;
+---------------+
| cust_name     |
+---------------+
| Kids Place    |
| The Toy Store |
+---------------+
2 rows in set (0.00 sec)

MariaDB [sqlbzbh]> 
MariaDB [sqlbzbh]> SELECT cust_email FROM Customers;
+-----------------------+
| cust_email            |
+-----------------------+
| sales@villagetoys.com |
| NULL                  |
| jjones@fun4all.com    |
| dstephens@fun4all.com |
| NULL                  |
+-----------------------+
5 rows in set (0.00 sec)

MariaDB [sqlbzbh]> SELECT cust_email FROM Customers WHERE cust_email != 'sales@ www.pan5.net';
+-----------------------+
| cust_email            |
+-----------------------+
| jjones@fun4all.com    |
| dstephens@fun4all.com |
+-----------------------+
2 rows in set (0.00 sec)

MariaDB [sqlbzbh]> 


Action is the antidote to despair!

本博客保留原创内容的版权。在标明来源和出处的前提下,允许非商业用途的转载和引用。
随笔分类可能存在部分内容来自于网络,并略有修改。 文章分类主要或全部内容来自于网络,并略有修改。 本意为高效记录和传递信息,版权归原作者所有,如有冒犯,即刻删除。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值