您当前的位置: 站长圈 > 数据库技术

MySQL数据库查询——条件查询

来源:站长圈|0 作者:adminzzq 点击: 0
按一定条件查询(where 子句),基本语法格式如下:
 select 列1[,......,列n] from 表名 where 查询条件
 1.在条件中带有比较运算符的查询:
 可以使用6种通用的比较运算符对值进行比较:=(等于)、<>(不等于)、>(大于 )、<(小于)、>=(大于等于)、<=(小于等于)。
 例:查询课程表中有没有mysql这门课
 SELECT * FROM `课程` WHERE `课程名称`='php'
 结果见图15.jpg

 例:查询1992年以后出生的学生
 SELECT * FROM `student` WHERE `sbirth`>'19920101'
 结果见图16.jpg
\
 例:多个条件组合查询,
 关键字:and 、 or
多个条件需要同时成立请使用“and”,多个条件中只需满足其中之一时请使用“or”

 查询1992年以后出生的女学生
 SELECT * FROM `student` WHERE `sbirth`>'19920101' and `ssex`='女'
 查询1991年以前出生的学生或1992年以后出生的学生,并且出生日期不为空的学生
 SELECT * FROM `student` WHERE `sbirth`>'19920101' or `sbirth`<'19910101' and `sbirth`<>''
 2.按范围(连续)查询
 关键字:between...and、not between ... and
 例:查询1990到1991年间出生的学生
 SELECT * FROM `student` WHERE `sbirth` between '19900101' and '19911231'
 结果见图17.jpg

 查询不在1990到1991年间出生的学生,不难了吧...
 3.在不连续范围内的查询
 关键字:in 、not in
 例:这个培训班除了php、mysql,还有其它什么课程
 
SELECT * FROM `课程` WHERE `课程名称` not in('php','mysql')
 结果见图18.jpg

 4.模糊查询
 关键字:like,not like
  百分号%:可匹配任意类型和长度的字符;
  下划线_:匹配单个任意字符,它通常用来限制表达式的字符长度;
 使用%,在学生表中查询来自含有“江”字的学生
 SELECT * FROM `student` WHERE `saddress` like '%江%'
 结果见图19.jpg

 使用_,在学生表中查询名字的第二个字是“星”字的学生
 SELECT * FROM `student` WHERE `sname` like '_星'
 结果见图20.jpg

5.带有NULL关键字的查询
 NULL值与空值不同,概念上,NULL意味着“没有值”或“未知值”,所以在where 子句不能简单地用“=”或“!=”来判别
 关键字:is null、is not null
 例:查询老师表中QQ号字段没有输入数据的老师
 SELECT * FROM `teacher` WHERE `tQQ` is null
 结果见图21.jpg

 关于NULL值为什么与空值或0不同,我们可以作如下测试
 select '' is null,'' is  not null,0 is null,0 is not null
 结果如图21-1.jpg所示,为0即为false,1即为true 

 6.查询不含重复值的列
 关键字:distinct
 例:查询任课表中不含重复的任课老师id
 SELECT distinct `任课老师id` FROM `任课`
 结果见图22.jpg