MySQL WHERE字句的使用方式与示例详情


MySQL WHERE字句

在使用MySQL查询select语句时,可以使使用WHERE字句来指定查询条件,从FROM字句中间选取适当的数据行和列

  •     可以使用一个或多个以逗号分隔的表,包括各种使用WHERE子句条件。但是WHERE子句的SELECT命令是一个可选部分。
  •     您可以使用WHERE子句指定任何条件。
  •     您可以指定一个以上的条件下使用AND或者OR运算符。
  •     一个WHERE子句中可以使用的分散DELETE或UPDATE的SQL命令指定条件。

WHERE语法格式:

SELECT * FROM 表名 WHERE  查询条件 <判断运算,判断运算1,...>

--示例:
已知数据库中有以下数据:
    

 

 查询:查上表年龄在23岁的同学有哪些人!

语句:

SELECT * FROM BEIMU WHERE BEI_AGE='23'

执行结果

 

查询比23岁大的同学有哪些

  SELECT * FROM BEIMU WHERE BEI_AGE>23

查询比23岁小的同学有哪些
  SELECT * FROM BEIMU WHERE BEI_AGE<23

查询年龄不是23岁的同学

  SELECT * FROM BEIMU WHERE BEI_AGE<>23
  SELECT * FROM BEIMU WHERE BEI_AGE!=23

  判定条件其结果取值为TRUE,FALSE,UNKNOWN(未知)

一、判断运算的语法分类如下:

  • 算术运算符:+    -    *     /(处可以写成div)%(取值可以写成mod)
  • 比较运算符:=     >     >=    <    <=      !=(不等于可以写成<>)
  • 逻辑运算符:&&(逻辑与可以写成 AND)  || (逻辑或也可以写成or) NOT(逻辑非)
  • 范围表达式:between...and...(同样可表示 表达式 >=   and 表达式   <=)或者 not between...and...(同样可表示 表达式<   ||  表达式 >)
  • 集    合:in(值,值1,值2...)    not in值,值1,值2...)  (可理解为:in 在...期间...中,not in 不在.....其中,期间,中)
  • 模糊查询:LIKE    NOT LIKE,通配符使用:%表示0-那个字符,_下划线表示一个字符
  • 位运算符:&(按位与)  |(按位或) 
  • null空值判断:is null 与is not null,如果使用null=null,null<>null,null=0,null<>0,null=false等都不对

注意:如果是初学者,从文章开始看的,可先暂时对一下内容做个理解,后面我会对GROUP BY、‘having、order by和limit进行详细分析

二、group by 配合聚合函数一块使用

COUNT:计数、数、数数;量的计数
MAX:最大值
MIN:最小值
AVG:平均值
SUM:总和、求和、总数
SELECT的查询条件只能是GROUP BY 的字段或者聚合函数

三、having和where不同,where是从原数据中赛选,having是从查询的结果中再次筛选

  where子句中不能使用组合函数,having中可以使用

四、order by排序

  默认是升序,也可以在字段后面加ASC(升序)或者DESC(降序),可使用多列排序

五、分页limit 参数1 ,参数2

  参数1:从第几行开始查询,行数从零开始

  参数2:每页显示几行

 

  MySQL中三种方式使用where条件,由好到坏:

  • 在索引中使用where条件过滤不匹配的记录,这是在存储引擎层完成的

  • 在使用索引覆盖来扫描(在Extra列中出现了Using index)来返还记录,直接从索引中过滤不需要的记录返回命中结果,这是在MySQL服务层完成的,但无需再返回查询记录

  • 从数据层中返回数据,然后过滤不满足条件记录,这是在MySQL服务器完成的,MySQL需要从数据表中读出记录然后过滤

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM