MySql:SELECT 语句(三) WHERE 指定查询条件

1、WHERE 子句条件操作符

   包括:> 、<、>=、<=、!= 、=、BETWEEN ... AND ...(在指定的两个值之间)

   示例:

    1)select * from student where stu_id=267;

    2)select * from student where stu_id<267;

    3)select * from student where stu_id between 267 and 305;

    空值检查:使用 NULL 关键字

     select * from student where stu_id is null;

2、WHERE 子句逻辑操作符

 1) AND 

    如果需要使用多个列一起过滤才能查询出要查询的结果,可以使用 AND 进行连接。

    select * from student where stu_name="test13" and stu_id=26;

   

 2)OR

    与 AND 相反,只要匹配任一条件就可以。

   select * from student where stu_id=26 or stu_id=27;

  

 3)计算次序

   WHERE 可以包含任意数目的 AND 和 OR。允许两者结合以进行复杂和高级的过滤。

  AND 的优先级高于 OR。也就是说在 SQL 中如果 AND 和 OR 混合使用,那么会优先运算 AND 然后在运算 OR。

  例如:

     SELECT * FROM products WHERE  pro_id = 3 OR  pro_id=4 AND pro_price>10;

     那么对于 SQL 的理解是:查询 id 为 4 并且价格大于 10 或者 id 为3 的任意条件的产品信息。

   如果要实现查询 id 为 3 或 4 并且价格大于 10 的产品信息,则需要使用圆括号来对操作符进行分组。

    SELECT * FROM products WHERE (pro_id = 3 OR  pro_id=4) AND pro_price>10;

  小贴士:如果 AND 和 OR 同时使用,不管什么情况下,最好都使用圆括号来进行分组,避免造成不必要的歧义。

3、 IN 

  IN 用来指定条件范围,范围中的每个条件都可以进行匹配。用逗号分隔,全部括在圆括号中。

     SELECT * FROM products WHERE pro_id IN (3, 4) AND pro_price>10; 

  作用和 OR 相同。使用 IN 的优点:

  • 在使用较长的选项清单时,使用 IN 更为清楚直观。
  • 使用 IN 时,计算次序也更加清楚。
  • IN 比 OR 执行更快。
  • IN 的最大有点是可以包含其他 SELECT 语句。

4、NOT IN

   用来否定后面跟的条件。

      SELECT * FROM student WHERE  stu_id NOT IN(26, 303); //表示查询 stu_id 为 26、303 之外的学生信息

猜你喜欢

转载自www.cnblogs.com/mayytest1202/p/10305447.html
今日推荐