SQ–模糊查询

– Between..And

–between…and…在数据库内部是一本正经特殊优化的,执行功效比>
and<等那种方法快;
–between a and b 相当于:字段>=a
and字段<=b

例如:

SELECT * FROM dbo.MyStudent WHERE S_Age BETWEEN 20 AND 30

SELECT * FROM dbo.MyStudent WHERE S_Age>=20 AND S_Age<=30

图片 1

 

Between ..and还能够做分页。

例如,笔者今后安装每一页展现3条数据

价值观的做法:

第一页:

SELECT TOP 3 * FROM dbo.MyStudent

第二页:

SELECT *FROM dbo.MyStudent WHERE S_ID
BETWEEN 4 AND 6

小结分页:

SELECT * FROM dbo.MyStudent WHERE S_ID
BETWEEN (当前页-1)*页容量+1  AND 当前页*页容量

 

– IN关键字

判断四个列的值,是不是在括号内:

SELECT * FROM dbo.MyStudent WHERE S_Gender IN (‘女’)–正确
SELECT * FROM dbo.MyStudent WHERE S_Gender IN(1)
–错误,数据类型差别【在将 varchar 值 ‘男’
转换来数据类型 int 时失利。】

 

– 模糊查询

行使系统现已定义好的通配符,遵照定义的平整匹配数据,即使能协作就查出来:

通配符,匹配符:_(下划线),%(百分号),[](中括号),^(尖括号)

_代表三个肆意字符;

%代表零个或四个随机字符;

[]中括号代表叁个字符的取值区间;

^配和[]使用,表示不是以此区间。注意,^z字符是数据库不匹配的,SQL
Server能够用,别的数据库用not like

–查找姓“张”的学生音讯
SELECT * FROM dbo.MyStudent WHERE S_Name LIKE ‘张%’

–查找名字中富含字母‘o’的学习者音讯
SELECT * FROM dbo.MyStudent WHERE S_Name LIKE ‘%o%’

–查找名字的第三位是字母’i’的上学的小孩子音信
SELECT * FROM dbo.MyStudent WHERE S_Name LIKE ‘_i%’

–取值区间,用的很少。。
–查询中间任何任务有字母的学习者新闻
SELECT * FROM dbo.MyStudent WHERE S_Name LIKE ‘%[a-z]%’

 

–取值区间,用的很少。。

–查询中间任何岗位有数字的学员音讯
SELECT * FROM dbo.MyStudent WHERE S_Name LIKE ‘%[0-9]%’

 

–查找名字中有字母或数字的学生音讯
SELECT * FROM dbo.MyStudent WHERE S_Name LIKE ‘%[0-9,a-z]%’

–SELECT * FROM dbo.MyStudent WHERE
S_Name LIKE ‘张四’
–表中盛名字为张四的上学的小孩子,未来判定,_(下划线)是不是能够兼容零个字符。如若得以的话,上边包车型客车那句SQL能够搜索到数码
SELECT * FROM dbo.MyStudent WHERE S_Name
LIKE ‘张四_’

事实表明:_下滑线不可能匹配零个字符,也正是说,下划线代表背后总得有二个字符!!!

图片 2

 

–查询最终一人不是数字的学员音讯
SELECT * FROM dbo.MyStudent WHERE S_Name LIKE ‘%[^0-9]%’

 

相关文章