MySQL学习足迹记录04--数据过滤--WHERE
来源:互联网 发布:金山 雷军 知乎 编辑:程序博客网 时间:2024/05/19 00:39
过滤数据所用到的表格数据,详见MySQL学习足迹记录02
1.使用WHERE子句
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price=2.50;
+---------------+------------+
| prod_name | prod_price |
+---------------+------------+
| Carrots | 2.50 |
| TNT (1 stick) | 2.50 |
+---------------+------------+
TIPs:
*在同时使用ORDER BY和WHERE子句时,ORDER BY位于WHERE之后,否则出错。
2.WHERE子句的操作符
等于:=
不等于:<>或!=
小于:<
小于等于:<=
大于:>
大于等于:>=
在指定的两个值之间 BETWEEN
3.检测单个值
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_name='fuses';
+-----------------+---------------+ #和字符串比较需用单引号限定
| prod_name | prod_price |
+-----------------+---------------+
| Fuses | 3.42 |
+-----------------+----------------+
4.小于限定
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price<10;
+---------------+------------+
| prod_name | prod_price |
+---------------+------------+
| .5 ton anvil | 5.99 |
| 1 ton anvil | 9.99 |
| Carrots | 2.50 |
| Fuses | 3.42 |
| Oil can | 8.99 |
| Sling | 4.49 |
| TNT (1 stick) | 2.50 |
+---------------+------------+
7 rows in set (0.00 sec)
5.小于等于限定
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price<=10;
+----------------+------------+
| prod_name | prod_price |
+----------------+------------+
| .5 ton anvil | 5.99 |
| 1 ton anvil | 9.99 |
| Bird seed | 10.00 |
| Carrots | 2.50 |
| Fuses | 3.42 |
| Oil can | 8.99 |
| Sling | 4.49 |
| TNT (1 stick) | 2.50 |
| TNT (5 sticks) | 10.00 |
+----------------+------------+
9 rows in set (0.00 sec)
6.不匹配检查
eg:
mysql> SELECT vend_id,prod_name FROM products WHERE vend_id <>1003;
#等效于SELECT vend_id,prod_name FROM products
# WHERE vend_id != 1003;
+---------+--------------+
| vend_id | prod_name |
+---------+--------------+
| 1001 | .5 ton anvil |
| 1001 | 1 ton anvil |
| 1001 | 2 ton anvil |
| 1002 | Fuses |
| 1005 | JetPack 1000 |
| 1005 | JetPack 2000 |
| 1002 | Oil can |
+---------+--------------+
7 rows in set (0.00 sec)
7.范围值检查(BETWEEN)
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5.99 AND 10.00;
+----------------+------------+ #注意,BETWEEN两边的取值为闭区间
| prod_name | prod_price |
+----------------+------------+
| .5 ton anvil | 5.99 |
| 1 ton anvil | 9.99 |
| Bird seed | 10.00 |
| Oil can | 8.99 |
| TNT (5 sticks) | 10.00 |
+----------------+------------+
5 rows in set (0.00 sec)
8.空值检查(IS NULL)
*NULL:无值(no value),并不等于0,空字符串或仅仅包含空
eg:
先列出包含空值的表:customers;
mysql> SELECT * FROM customers;
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
| cust_id | cust_name | cust_address | cust_city | cust_state | cust_zip | cust_country | cust_contact | cust_email |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
| 10001 | Coyote Inc. | 200 Maple Lane | Detroit | MI | 44444 | USA | Y Lee | ylee@coyote.com |
| 10002 | Mouse House | 333 Fromage Lane | Columbus | OH | 43333 | USA | Jerry Mouse |NULL |
| 10003 | Wascals | 1 Sunny Place | Muncie | IN | 42222 | USA | Jim Jones | rabbit@wascally.com |
| 10004 | Yosemite Place | 829 Riverside Drive | Phoenix | AZ | 88888 | USA | Y Sam | sam@yosemite.com |
| 10005 | E Fudd | 4545 53rd Street | Chicago | IL | 54545 | USA | E Fudd |NULL |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
5 rows in set (0.00 sec)
mysql> SELECT cust_id FROM customers WHERE cust_email IS NULL;
+---------+
| cust_id |
+---------+
| 10002 |
| 10005 |
+---------+
2 rows in set (0.00 sec)
1.使用WHERE子句
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price=2.50;
+---------------+------------+
| prod_name | prod_price |
+---------------+------------+
| Carrots | 2.50 |
| TNT (1 stick) | 2.50 |
+---------------+------------+
TIPs:
*在同时使用ORDER BY和WHERE子句时,ORDER BY位于WHERE之后,否则出错。
2.WHERE子句的操作符
等于:=
不等于:<>或!=
小于:<
小于等于:<=
大于:>
大于等于:>=
在指定的两个值之间 BETWEEN
3.检测单个值
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_name='fuses';
+-----------------+---------------+ #和字符串比较需用单引号限定
| prod_name | prod_price |
+-----------------+---------------+
| Fuses | 3.42 |
+-----------------+----------------+
4.小于限定
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price<10;
+---------------+------------+
| prod_name | prod_price |
+---------------+------------+
| .5 ton anvil | 5.99 |
| 1 ton anvil | 9.99 |
| Carrots | 2.50 |
| Fuses | 3.42 |
| Oil can | 8.99 |
| Sling | 4.49 |
| TNT (1 stick) | 2.50 |
+---------------+------------+
7 rows in set (0.00 sec)
5.小于等于限定
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price<=10;
+----------------+------------+
| prod_name | prod_price |
+----------------+------------+
| .5 ton anvil | 5.99 |
| 1 ton anvil | 9.99 |
| Bird seed | 10.00 |
| Carrots | 2.50 |
| Fuses | 3.42 |
| Oil can | 8.99 |
| Sling | 4.49 |
| TNT (1 stick) | 2.50 |
| TNT (5 sticks) | 10.00 |
+----------------+------------+
9 rows in set (0.00 sec)
6.不匹配检查
eg:
mysql> SELECT vend_id,prod_name FROM products WHERE vend_id <>1003;
#等效于SELECT vend_id,prod_name FROM products
# WHERE vend_id != 1003;
+---------+--------------+
| vend_id | prod_name |
+---------+--------------+
| 1001 | .5 ton anvil |
| 1001 | 1 ton anvil |
| 1001 | 2 ton anvil |
| 1002 | Fuses |
| 1005 | JetPack 1000 |
| 1005 | JetPack 2000 |
| 1002 | Oil can |
+---------+--------------+
7 rows in set (0.00 sec)
7.范围值检查(BETWEEN)
eg:
mysql> SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5.99 AND 10.00;
+----------------+------------+ #注意,BETWEEN两边的取值为闭区间
| prod_name | prod_price |
+----------------+------------+
| .5 ton anvil | 5.99 |
| 1 ton anvil | 9.99 |
| Bird seed | 10.00 |
| Oil can | 8.99 |
| TNT (5 sticks) | 10.00 |
+----------------+------------+
5 rows in set (0.00 sec)
8.空值检查(IS NULL)
*NULL:无值(no value),并不等于0,空字符串或仅仅包含空
eg:
先列出包含空值的表:customers;
mysql> SELECT * FROM customers;
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
| cust_id | cust_name | cust_address | cust_city | cust_state | cust_zip | cust_country | cust_contact | cust_email |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
| 10001 | Coyote Inc. | 200 Maple Lane | Detroit | MI | 44444 | USA | Y Lee | ylee@coyote.com |
| 10002 | Mouse House | 333 Fromage Lane | Columbus | OH | 43333 | USA | Jerry Mouse |NULL |
| 10003 | Wascals | 1 Sunny Place | Muncie | IN | 42222 | USA | Jim Jones | rabbit@wascally.com |
| 10004 | Yosemite Place | 829 Riverside Drive | Phoenix | AZ | 88888 | USA | Y Sam | sam@yosemite.com |
| 10005 | E Fudd | 4545 53rd Street | Chicago | IL | 54545 | USA | E Fudd |NULL |
+---------+----------------+---------------------+-----------+------------+----------+--------------+--------------+---------------------+
5 rows in set (0.00 sec)
mysql> SELECT cust_id FROM customers WHERE cust_email IS NULL;
+---------+
| cust_id |
+---------+
| 10002 |
| 10005 |
+---------+
2 rows in set (0.00 sec)
- MySQL学习足迹记录04--数据过滤--WHERE
- MySQL学习足迹记录05--数据过滤--AND,OR,NOT,IN
- MySQL学习足迹记录06--数据过滤--LIKE搭配百分号(%)和下划线(_)通配符
- MySQL学习足迹记录07--数据过滤--用正则表达式进行检索
- MySQL学习足迹记录11--分组数据--GROUP BY,HAVING
- 【MySql】过滤数据where语句
- MySQL学习足迹记录01--SOURCE,SHOW
- MySQL学习足迹记录02--SELECT
- MySQL学习足迹记录10--汇总数据--MAX(),MIN(),AVG(),SUM(),COUNT()
- Mysql基础——where 过滤数据
- MySQL WHERE数据过滤(一)
- MySQL WHERE数据过滤(二)
- MySQL--操作简记(where过滤,通配符过滤数据)
- MySQL学习足迹记录03--ORDER BY,DESC
- MySQL学习足迹记录08--创建计算字段--Concat(),AS
- MySQL学习足迹记录12--使用子查询
- MySQL学习足迹记录13--联结表--INNER JOIN...ON
- MySQL学习足迹记录14--表别名和自联结
- Mina框架学习笔记(四)
- 音频编码汇总
- mybatis与spring3.1整合
- 【教你排除USB设备无法识别问题】
- Mina框架学习笔记(五)
- MySQL学习足迹记录04--数据过滤--WHERE
- Mina框架学习笔记(六)
- [Android]新手入门:Intent的介绍和常见用法总结
- 模块开发实例 (Story 1)继承模型
- android 音乐播放器
- js or jquery 获取浏览器宽高
- appfog
- linux中新增系统调用signalfd、timerfd、eventfd使用说明
- IOS 消息推送原理及实现总结