数据库SQL语句学习笔记(4)-过滤数据

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的字符。

 

posted @ 2016-06-05 19:01  gaojiaxing  阅读(3878)  评论(0编辑  收藏  举报