SQL学习04 过滤数据

SELECT prod_name,prod_price

FROM Products

WHERE prod_price=3.49;

警告:WHERE子句的位置

在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误(关于ORDER BY的使用,请参阅第3课)。

表4-1WHERE子句操作符

警告: 操作符兼容

表4-1中列出的某些操作符是冗余的(如< >与!=相同,!<相当于>=)。并非所有DBMS都支持这些操作符。想确定你的DBMS支持哪些操作符,请参阅相应的文档。

1 检查单个值

SELECT prod_name,prod_price

FROM Products

WHERE prod_price<10;

2 不匹配检查

SELECT vend_id,prod_name

FROM Products

WHERE vend_id<>'DLL01';

3 范围值检查

SELECT prod_name,prod_price

FROM Products

WHERE prod_price BETWEEN 5 AND 10;

4 空值检查

NULL

无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。

SELECT prod_name

FROM Products

WHERE prod_price IS NULL;

AND操作符(OR同用法)

SELECT prod_id,prod_price,prod_name

FROM Products

WHERE vend_id='DLL01' AND prod_price<=4;

求值顺序

SELECT prod_name,prod_price

FROM Products

WHERE(vend_id='DLL01'OR vend_id=‘BRS01’)

AND prod_price>=10;

提示:在WHERE子句中使用圆括号

任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认求值顺序,即使它确实如你希望的那样。使用圆括号没有什么坏处,它能消除歧义。

IN

WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。

SELECT prod_name,prod_price

FROMProducts

WHERE vend_id IN('DLL01','BRS01')

ORDER BY prod_name;

NOT操作符

SELECT prod_name

FROMProducts

WHERE NOT vend_id='DLL01'ORDER BY prod_name;

 等同于

SELECT prod_name

FROMProducts

WHERE vend_id<>'DLL01'

ORDER BY prod_name;

分析▼

为什么使用NOT?对于这里的这种简单的WHERE子句,使用NOT确实没有什么优势。但在更复杂的子句中,NOT是非常有用的。例如,在与IN操作符联合使用时,NOT可以非常简单地找出与条件列表不匹配的行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 于是又到了梧桐絮飘满校园的四月,又到了梧桐色相簿的季节,我们迎来了实习生招聘。 “范老湿从不写代码”,“范老湿从不...
    Lance_Van阅读 776评论 0 1
  • 数据库入门 数据库: 保存有组织的数据的容器(通常是一个文件或一组文件).数据库软件应该称为 DBMS(DataB...
    Mjericho阅读 536评论 0 0
  • 前言 一、基础知识1.了解数据库数据库(database):保存有组织的数据的容器表(table):某种特定类型数...
    流水混帐阅读 538评论 0 1
  • 1.表中的任何列都可以作为主键, 只要它满足以下条件:任意两行都不具有相同的主键值;每一行都必须具有一个主键值( ...
    Cherryjs阅读 795评论 0 0
  • 杨绛先生说:“我一个人怀念我们相聚的日子。” 老早以前就想写一篇关于我们的故事,故事有开头,有叙中,也有结尾。 以...
    一口大宝剑阅读 527评论 0 0