5.基础-数据过滤(Where)

组合WHERE子句

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

ADN操作符

       输入: SELECT prod_id,prod_price,prod_name
                  FROM products

                  WHERE vend_id = 1003 AND prod_price <= 10;

      分析:WHERE子句包含两个条件,并且用AND关键字联结。其实是可以添加多个过滤条件的,每添加一条就要使用一个ADN。

       AND:用在WHERE子句中,即要求满足所有给定的条件。

OR操作符

       输入: SELECT prod_id,prod_price,prod_name
                  FROM products

                  WHERE vend_id = 1003 OR prod_price <= 10;

       分析:只需要满足一个条件即可。

计算次序

       WHERE可以包含任意数目的AND和OR操作符,也允许二者结合以进行复杂和高级的过滤。

       输入: SELECT prod_id,prod_price,prod_name
                  FROM products

                  WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >= 10;

     分析:在处理OR操作符之前,优先处理AND操作符。实际上是这样的,vend_id = 1002 OR (vend_id = 1003 AND prod_price >= 10);

       圆括号的优先级比AND和OR更高。应该尽量使用圆括号,不要指望默认计算次序。

IN操作符

       IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN后面是由逗号分隔的合法值清单,全部括在圆括号中。

       输入: SELECT prod_id,prod_price,prod_name
                  FROM products

                  WHERE vend_id IN (1002.1003)
                  ORDER BY prod_name;

       分析:IN的用法与OR有点类似。但IN更具优势。

                 1.当选项比较多的时候,IN更直观清楚;

                 2.选项的次序更好管理;

                 3.IN执行地比OR更快;

                 4.IN最大的优点是,可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。

NOT操作符

       输入: SELECT prod_id,prod_price,prod_name
                  FROM products

                  WHERE vend_id NOT IN (1002.1003) 

                  ORDER BY prod_name;

       分析: NOT支持对IN,BETWEEN和EXISTS配合使用。

你可能感兴趣的:(MySQL-基础,MySQL基础)