sql必知必会4-过滤数据

作者: liluchang 分类: 数据库 发布时间: 2018-03-16 16:50

在select语句中,数据根据where子句中指定的搜索条件进行过滤,where子句在表名(也就是from子句)之后给出。

select prod_name,prod_price from products where prod_price = 3.49 order by prod_name;

这条语句会返回products表中所有prod_price为3.49的数据,但是实际中你可能会发现,它输出了3.49,3.490,3.4900等,这是因为DBMS中指定了所使用的数据类型和默认行为。但是它们是相等的。

请注意,如果可以在sql层面过滤和排序,我们没有必要在应用层面去排序或者过滤数据,这样的情况下我们既可以不用应用层面过滤和排序,也可以避免在客户端过滤数据时需要发送更多的数据。

同时,order by是在where子句之后的,其实,order by 是要在所有的子句之后,当然如果你用了orm这种不是原生sql的,请根据orm的说明文档来操作。

where子句操作符

=     等于
<>   不等于
!=    不等于
>     大于
>=   大于等于
!>    不大于
<     小于
<=    小于等于
!<    不小于
between  在指定的两值之间
is null   为null值

请注意,上面的很多条件是相同的,!>跟<=其实结果是一样的。

同样,这些符号根据DBMS的不同,可能会有支持上的不同,例如我写mysql的时候,一直用的是!=(不等于),但是<>一样是不等于我自己却很少用。而access数据库只支持<>而不支持!=。具体请参考DBMS的说明文档。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

标签云