SQL学习04——过滤数据

Posted xingweikun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL学习04——过滤数据相关的知识,希望对你有一定的参考价值。

过滤数据

使用where子句

查询website表中中国公司的数据。

SELECT name,url,alexa,country FROM websites where country='CN';
+--------+-------------------------+-------+---------+
| name   | url                     | alexa | country |
+--------+-------------------------+-------+---------+
| Taobao | https://www.taobao.com/ |    13 | CN      |
| Weibo  | http://weibo.com/       |    20 | CN      |
+--------+-------------------------+-------+---------+

同时使用order by和where子句时,应该让order by子句位于where子句之后。

where子句操作符

操作符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
!<不小于
>大于
>=大于等于
!>不大于
between在指定的两个值之间
is null为null值

注意:并非所有的DBMS都支持这些操作符,想确定你的DBMS支持哪些操作符,请参阅相关文档。

检查单个值

SELECT name,url,alexa,country FROM websites where alexa<20;
+----------+---------------------------+-------+---------+
| name     | url                       | alexa | country |
+----------+---------------------------+-------+---------+
| Google   | https://www.google.cm/    |     1 | USA     |
| Taobao   | https://www.taobao.com/   |    13 | CN      |
| Facebook | https://www.facebook.com/ |     1 | USA     |
+----------+---------------------------+-------+---------+

不匹配检查

SELECT name,url,alexa,country FROM websites where country <> 'USA';
+--------+-------------------------+-------+---------+
| name   | url                     | alexa | country |
+--------+-------------------------+-------+---------+
| Taobao | https://www.taobao.com/ |    13 | CN      |
| Xuexi  | http://www.xxx.cn       |   888 | xxx     |
| Weibo  | http://weibo.com/       |    20 | CN      |
+--------+-------------------------+-------+---------+

SQL语句不区分大小写,但是过滤数据时,数据区分大小写。

SELECT name,url,alexa,country FROM websites where country <> 'usa';
+----------+---------------------------+-------+---------+
| name     | url                       | alexa | country |
+----------+---------------------------+-------+---------+
| Google   | https://www.google.cm/    |     1 | USA     |
| Taobao   | https://www.taobao.com/   |    13 | CN      |
| Xuexi    | http://www.xxx.cn         |   888 | xxx     |
| Weibo    | http://weibo.com/         |    20 | CN      |
| Facebook | https://www.facebook.com/ |     1 | USA     |
+----------+---------------------------+-------+---------+

范围值检查

查询alexa列在10~20之间的数据。

SELECT name,url,alexa,country FROM websites where alexa between 10 and 20;
+--------+-------------------------+-------+---------+
| name   | url                     | alexa | country |
+--------+-------------------------+-------+---------+
| Taobao | https://www.taobao.com/ |    13 | CN      |
| Weibo  | http://weibo.com/       |    20 | CN      |
+--------+-------------------------+-------+---------+

空值检查

由于name列没有空值,所以未返回结果。

SELECT name,url,alexa,country FROM websites where name is null;
Empty set (0.00 sec)

随便添加一列有空值的数据再一次查询(空值时没有数值,而不是0)

SELECT name,url,alexa,country FROM websites where name is null;
+------+------+-------+---------+
| name | url  | alexa | country |
+------+------+-------+---------+
| NULL | NULL |    50 | NULL    |
+------+------+-------+---------+

这样就查询到空值了。

以上是关于SQL学习04——过滤数据的主要内容,如果未能解决你的问题,请参考以下文章

数据库sql

SQL学习05——高级数据过滤

SQL的学习

使用 DAO/servlet 中的表单/参数过滤数据

读书笔记SQL必知必会

mybatis学习(39):动态sql片段