mysql深入理解二

过滤数据

      本章讲授如何使用select语句的where 子句指定的搜索条件。数据库表一般包含

      大量的数据,很少需要检索表中所有的行。通常只会根据特定操作或报告的需要

      提取数据的子集。只检索所需数据需要的指定搜索条件(search criteria) ,搜索条

      件也称为过滤条件(filter condition)。

      selecct prod_name ,prod_price  from products where prod_price = 2.50;

      这条语句从products 表中检索两个列,但不返回所有行,只返回prod_price

     值为2.50 的行。

     where 子句的位置 在同时使用order by 和where 子句的时侯,应该让order by

      位于where 之后,否则将会产生错误

1     and操作符

      为了不止一个列进行过滤,可使用and操作符给where子句附加条件

       select prod_id ,prod_price ,prid_name from products

      where vend_id = 1003 and prod_price <= 10;

      此sql语句检索由供应商1003 制造且价格小于等于 10 美元的所有产品的名称

      和价格。

       上述例子中使用了只包含一个关键字的and 的语句,把连个过滤条件组合在一

       起。还可以添加多个过滤条件,没添加一条就要使用一个and。

2      or操作符

        or操作符与and不同,它指示mysql检索匹配任一条件的行。

      select prod_name ,prod_price from products  where vend_id = 1002 or vend_id

       =1003;

       此sql语句检索由任一个指定供应商1002 或者1003制造的所有产品的产品名和价

       格。

      select prod_name,prod_price from products

      where vend_id =1002 or vend_id = 1003 and prod_price >=10;

      和

      select prod_name,prod_price from products

      where (vend_id =1002 or vend_id = 1003) and prod_price >=10;

     结果可能不一样,因为and的优先级比or高

3     in操作符

       圆括号在where 子句中还有另外一种用法。in操作符用来指定条件范围,范围中

      的每个条件都可以进行匹配。in 取合法值的由逗号分隔的清单全部都在圆括号中

     。

        select prod_name,prod_price from products where vend_id in(1002 ,1003) order

         by prod_ name;

         in的功能和or一样

4        not操作符

         where 子句中的not 操作符有且只有一个功能,那即使否定它之后跟的任何条件。

         select prod_name ,prod_price  from products where vend_id not in (1002, 1003)

         order by prod_name;  

 

 

    原文作者:mysql
    原文地址: https://blog.csdn.net/cai493199904/article/details/8088540
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞