优秀的编程知识分享平台

网站首页 > 技术文章 正文

SQL数据库基础系列之八:通配符LIKE和IN的用法

nanyue 2024-07-25 05:50:44 技术文章 8 ℃

演示数据:T_Student学生信息表

WHERE子句是对结果的一个筛选,比如我们对T_Student表中查找姓名为王强的记录。这个查找之前讲过,用它作为开篇引申。先列出本篇所有的举例,请注意字数的区别。每个SQL都知道如何写,请划走不用继续往下看,节省大家宝贵的时间。

  • 例一筛选姓名为王强的数据;
  • 例二筛选姓名为张某或张某某的数据;
  • 例三筛选姓名张某两个字的数据;
  • 例四筛选姓名张某某三个字的数据;
  • 例五筛选姓名为某伟的数据;
  • 例六筛选姓王或姓张的数据;
  • 例七筛选不姓王和不姓张的数据;

例一:查找T_Student表中姓名为王强的数据,有具体筛选条件使用“=”号。

SELECT * FROM T_Student

WHERE C_Name = '王强'

例二:模糊查找T_Student表中张姓的数据,模糊查找需要用到“LIKE”通配符。我们知道,姓名有两个字、三个字和多个字的,如不指定姓名字数个数的使用“%”符号。

SELECT * FROM T_Student

WHERE C_Name LIKE '张%'

例三:查找T_Student表张姓的两个字姓名的数据。需要使用“_”字符。一个“_”代表匹配一个字符。

SELECT * FROM T_Student

WHERE C_Name LIKE '张_'

小结:通过例二和例三的对比,我们可以知道%可以匹配0到多个字符不限定数量,_只能匹配1个字符,请注意两者的区别。

例四:查找T_Student表张姓三个字的数据。C_Name是字符串型值,计算姓名汉字个数需要用到LEN()函数。

SELECT * FROM T_Student

WHERE C_Name LIKE '张%'

AND LEN(C_Name) > 2

例五:查找T_Student表某伟的数据。例一是从左开始匹配,%和_也可以从右到左匹配。

SELECT * FROM T_Student

WHERE C_Name LIKE '%伟'

SELECT * FROM T_Student

WHERE C_Name LIKE '_伟'

例六:查找T_Student表姓王或姓张学生的数据,先使用LEN()取姓,然后用IN()进行判断,LN()函数可以存放多个比较值。

SELECT * FROM T_Student

WHERE LEFT(C_Name,1) IN('张','王')

例七:查找T_Student表不姓王或不姓张学生的数据。思路是反向查找例六的结果,使用NOT IN()函数。

SELECT * FROM T_Student

WHERE LEFT(C_Name,1) NOT IN('张','王')

Tags:

最近发表
标签列表