1.数据库检索要求满足特定搜索条件的行会被检索出来,搜索条件也被称作是过滤条件。

在SELECT语句中,数据更具WHERE子句进行搜索条件过滤,在FROM子句之后给出



SELECT prod_name,prod_price 
FROM Products 
WHERE prod_price=3.49;



输出:

分析:满足prod_price为3.49的值都会显示出来。

同时使用ORDER BY和WHERE子句时,ORDER BY位于WHERE之后

2.WHERE子句操作符

操作符

=

<>

!=

<

>

<=

>=

!

!>

BETWEEN

IS NULL

说明

等于

不等于

不等于

小于

大于

小于等于

大于等于

不小于

不大于

在指定值之间

为NULL

BETWEEN 5 AND 10         在5和10之间



SELECT prod_name,prod_price 
FROM Products 
WHERE prod_price IS NULL;



这个语句返回所以没有价格的行,不是0,也不是空格

3.操作符:用来联结或改变WHERE子句中的子句的关键字,也称为逻辑操作符。

  • AND操作符:
SELECT prod_id,prod_price,prod_name 
FROM Products 
WHERE vend_id='DLL01' AND prod_price <=4;

输出:

  此SQL语句检索供应商DLLO1制造的且价格小于等于4美元的所以商品的编号,价格和名称。WHERE的两条子句由AND联结在一起,同时满足AND两边的条件的行会被检索出来。这条语句只有两个过滤条件,多个的话也用AND联结。

  • OR操作符: 
SELECT prod_id,prod_price,prod_name 
FROM Products 
WHERE vend_id='DLL01' OR prod_price <=4;

OR操作符表明两端检索条件只要有一个满足就会被检索出来。

AND和OR也可以一起使用,但是AND优先级比较高,为了是含义更加清楚,可以给条件加上园括号,例如:



SELECT prod_id,prod_price,prod_name 
FROM Products 
WHERE (vend_id='DLL01' OR vend_id='BRS01') AND prod_price >=10;



  • IN操作符:用来指定条件范围,范围中的每个条件都可以进行匹配。IN取一组由逗号分开,括在圆括号中的合法值。
SELECT prod_id,prod_price,prod_name 
FROM Products 
WHERE vend_id IN ('DLL01','BRS01');
  • 输出:
  • NOT操作符:否定其后所有的条件
SELECT prod_name 
FROM Products 
WHERE NOT vend_id='DLL01';

所有vend_id不是DLL01的行都被检索出来

4.通配符

如果不知道你要搜索的特定值,只知道一部分信息,就需要构造通配符搜索模式。

通配符:用来匹配值的一部分的特殊字符

搜索模式:由字面值、通配符或两者结合构成的搜索条件。

通配符本身实际上是SQL的WHERE子句中的特殊含义的字符,SQL支持几种通配符,使用LIKE操作符。只能用于文本字段,非文本字段不能使用通配符搜索。

  • %通配符:表示任意字符出现任意次数,可以使0次,1次或多次,不能匹配NULL。例如为了找出所有以词Fish开头的产品,可以用
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';
  • _下划线通配符:匹配任意单个字符
  • []方括号通配符:指定一个字符集,它必须匹配指定位置的一个字符。[JM]匹配J或者M,[^JM]匹配不是J和M的字符。