第十章模糊函数和聚合函数
Posted 别样大叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十章模糊函数和聚合函数相关的知识,希望对你有一定的参考价值。
** 模糊查询:《模糊查询可以使用like、通配符来进行》
-- 通配符:
_ 一个字符
例:A like ‘C_‘
符合条件的A 如:CS、Cd
% 任意长度的字符串
例:B like ‘CO%‘符合条件的B
如:CONST、COKE
[] 括号中所指定范围内的一个字符
例:C like ‘9W0[1-2]‘符合条件的C
如:9W01、9W02
[^] 不在括号中所指定范围内的任意一个字符
例:D like ‘9W0[^1-2]‘符合条件的D
如:9W03、9W07
** 使用 like 进行模糊查询
查询姓‘张’学生信息:
语句:select * from Student where SName like ‘张%‘
查询住址包含‘湖南’字样的学生:
语句:select * from Student where SAddress like ‘%湖南%‘
** 使用 between
在某个范围内进行查询:
解释:查询两个已知值之间的值或不是两个值之间的值。已知值分为:初值、终值。初值<=终值。
初值和终值之间用 and 分开。
例:分数在60 到 80 之间的信息:
select 列名,列名 from 表名 where 列名 between 60 and 80
实例: select StudentID,Score from Core where Score between 60 and 80
如果写成下面的形式:《不会报错,但也不会显示任何信息》
select StudentID,Score from Core where Score between 80 and 60 《数值应该是从小到大》
** 查询日期范围《这个使用的比较多》
例:查询不在 2013-1-1 到 2013-10-1 之间订购的图书:
select * from 表名 where 列名 not between ‘2013-1-1‘ and ‘2013-10-1‘
实例: select * from Sales where ord_date between ‘2013-1-1‘ and ‘2013-10-1‘
注:使用 not 来对现在条件进行‘取反’操作
实例: select * from Sales where ord_date not between ‘2013-1-1‘ and ‘2013-10-1‘
** 使用 in 在列举值内进行查询:
查询的值是某些值里面的某一个,这时就可以用列举值 in 来进行查询。《将列举值放在圆括号里,用逗号分开。》
例:查询湖南、广州、上海的学生姓名
select SName as 学生姓名,SAddress as 地址
from Student
where left(SAddress,2) in (‘湖南‘,‘广州‘,‘上海‘)
注:使用 not 可以得到所有不匹配的列举值的行。《列举值类型必须与匹配的列具有相同的数据类型》
*** T-SQL 中的聚合函数
** sum()函数:返回表达式中所有数值的和,空值将被忽略。《只用于数字类型的列。不能够汇总字符、日期等其他数据类型。》
例:查询学生编号为23的考试总分。
select sum(列名) as 学生编号为23的总分 from 表名 where StudentID=23
实例: select sum(Scores) as 学生编号为23的总分 from Score where StudentID=23
注意:这种查询只返回一个数值,因此,不能直接与可能返回多行的列一起使用来进行查询。
例: select sum(Scores) as 学生编号为23的总分 ,CourseID as 科目编号 from Score where StudentID=23
将会报错!《但是在一个查询中可以同时使用多个聚合函数》
** avg()函数:返回表达式中所有数值的平均值,空值将被忽略。《只用于数字类型的列》
例: 及格学生平均分成绩
select avg(Scores) as 及格成绩平均分 from Score wher Scores>=60
** max()函数 和 min()函数
max :返回表达式中的最大值《忽略任何空值》
min :返回表达式中的最小值《忽略任何空值》
可用于 数值类型、字符类型、日期类型、时间类型 的列。
对于字符的列:max()函数查找排序序列的最大值、min()函数返回排序序列的最小值。
例:查询平均成绩、最高分、最低分。
select avg(Scores) as 平均分,max(Scores) as 最高分,min(Scores) as 最低分 from Score where Scores>=60
** count()函数:返回提供的组或记录集中的计数。用于《除 text、image、ntext外的任何类型的列》
也可以用 * 来作为count()的表达式,使用*可以不必指定特定的列而计算所有行的数,当对所有行进行计数时,则包含空值的行。
例:查询总记录数的语句:
select count(*) as 总记录数 from Score
例:查询单列 Scores 记录数的语句:
select count(Scores) as 总记录数 from Score
例;验证登录用户密码语法
select count(*) from 表名 where name="Jack" and pwd="123456"
以上是关于第十章模糊函数和聚合函数的主要内容,如果未能解决你的问题,请参考以下文章