首页 > 数据库技术 > 详细

SQL笔记二:过滤条件字段多个取值、模糊匹配和两个值之间取值、去重

时间:2019-01-08 14:10:15      阅读:342      评论:0      收藏:0      [点我收藏+]

上一节简单的总结了单表查询和多表查询,以下给大家总结了查询语句的结构,如下:

SELECT...FROM...WHERE...GROUP BY...HAVING...ORDER BY...LIMIT...

本节主要总结下常用的条件字段的匹配问题,最常见的是“=”,如select * from student where id=1501001等,除此之外平时也会遇到一些不是"=的情况。

1.掌握in的用法

使用场景:做条件查询的时候,条件字段的取值有多个情况,in(范围),not in(范围)

实例:查询学号id为1501001或1501002或1502001的学生信息。

分析过程:

1.查询涉及到的表:student

2.查询字段信息:没有特定的即用*表示

3.关联条件:只有一个表,不用关联

4.过滤条件:id in(1501001,1501002,1502001)

所以最终得到的sql如下:

select

  *

from

  student

where

  id in(1501001,1501002,1502001)

拓展:除了in,对应的有not in的用法,指条件字段不在某个数据内的情况。

2.掌握模糊查询like的用法

2.1使用%来模糊匹配

使用场景:条件字段不完整时,且没有字符长度限制时,可以用%做模糊匹配。

实例:查询所有姓“胡”的学生信息。

分析过程:

1.查询涉及到的表:student

2.查询字段信息:没有特定的即用*表示

3.关联条件:只有一个表,不用关联

4.过滤条件:name like ‘胡%‘

所以最终得到的sql如下:

select

  *

from

  student

where

  name like ‘胡%‘

拓展:以胡开头是 ‘胡%‘,以胡结尾是 ‘%胡‘,包含胡是 ‘%胡%‘

2.3使用_来模糊匹配

_和%区别是,_起到的是一个占位符的作用,一个_只能匹配一个任意的字符,而%可以匹配任意长度的字符。

使用场景:条件字段不完整时,且有字符长度限制时,可以用_做模糊匹配。

实例:查询所有姓“胡”且名字为两个字的学生信息。

分析过程:

1.查询涉及到的表:student

2.查询字段信息:没有特定的即用*表示

3.关联条件:只有一个表,不用关联

4.过滤条件:name like ‘胡_‘

所以最终得到的sql如下:

select

  *

from

  student

where

  name like ‘胡_‘

3.between和distinct(比较简单就放在一起说了^_^)

between使用场景:条件字段的值处于两个值之间

distinct使用场景:去除查询结果中的重复数据

实例:根据学生的成绩表,查出所有成绩在85-90分的学号,学号不能重复

分析过程:

1.查询涉及到的表:score

2.查询字段信息:distinct id

3.关联条件:只有一个表,不用关联

4.过滤条件:score between 85 and 90

所以最终得到的sql如下:

select

  distinct id

from

  score

where

  score between 85 and 90

 

SQL笔记二:过滤条件字段多个取值、模糊匹配和两个值之间取值、去重

原文:https://www.cnblogs.com/123blog/p/10238298.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!