S1/C#语言和数据库技术基础/10-模糊查询和聚合函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了S1/C#语言和数据库技术基础/10-模糊查询和聚合函数相关的知识,希望对你有一定的参考价值。
通配符
简单地讲,通配符是一类字符,它可以代替一个或多个真正的字符,查找信息时作为替代字符出现。T-SQL中的通配符必须与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进行模糊查询
LIKE运算符用于匹配字符串或字符串的一部分。由于该运算符只用于字符串,所以仅与字符数据类型(如char或varchar等)联合使用。
在数据更新、删除或者查询的时候,依然可以使用LIKE关键字进行匹配查找,例如,查找姓张的学生信息:
SELECT * FROM Students WHERE Sname LIKE ‘张%‘
或者查询住址包含“北京”字样的学生信息:
SELECT * FROM Students WHERE SAddress LIKE ‘%北京%‘
使用BETWEEN在某个范围内进行查询
使用关键字BETWEEN可以查找那些介于两个已知值之间的一组未知值。要实现这种查找,必须知道查找的初值和终值,初值和终值用AND关键字分开。例如,查询分数在60(含)到80(含)之间的信息如下:
SELECT * FROM SCore WHERE Score BETWEEN 60 AND 80
如果写成如下形式:
SELECT * FROM SCore WHERE Score BETWEEN 80 AND 60
提示:使用NOT来对限制条件进行“取反”操作。
使用IN在列举值内进行查询
查询的值是指定的某些值之一,可以使用带列举值的IN关键字来进行查询。将列举值放在圆括号里,用逗号分开。例如,查询北京、广州或者上海的学生姓名:
SELECT Sname AS 学生姓名 FROM Students WHERE Saddress
IN(‘北京‘,‘广东‘,‘上海‘) ORDER BY Saddress
同样可以把IN关键字和NOT关键字合起来使用,这样可以得到所有不匹配列举值的行。
提示:列举值类型必须与匹配的列具有相同的数据类型。
T-SQL中的聚合函数
T-SQL的另外一类内部函数——“聚合函数”。聚合函数能够基于列进行计算,将多个值合并为一个值,其作用是对一组值进行计算,并返回计算后的值。
1、SUM()函数
SUM()函数返回表达式中所有值的总和,空值将被忽略。SUM()函数只能用于数字类型的列,不能够汇总字符、日期等其他数据类型。例如,查询学生编号为23的考试总分,可以使用如下查询。
SELECT SUM(Score) AS 学号为23的学生总分 FROM Score WHERE StudentID = 23
注意:这种查询只返回一个数值,因此,不能够直接与可能返回多行的列一起使用来进行查询,例如:
SELECT SUM(Score) AS 学号为23的学生总分,CourseID AS 科目编号 FROM Score WHERE StudentID = 23
将报告错误信息。但是,在一个查询中可以同时使用多个聚合函数。
2、AVG()函数
AVG()函数返回表达式中所有数值的平均值,空值将被忽略。AVG()函数也只能用于数字类型的列。
3、MAX()函数和MIN()函数
MAX()函数返回表达式中的最大值,MIN()函数返回表达式中的最小值,这两个函数同样都忽略任何空值,并且他们都可以用于数字型、字符型及日期/时间类型的列。对于字符序列,MAX()函数查找排序序列的最大值。而MIN()函数同理,返回排序序列的最小值。
例如,查询平均成绩、最高分、最低分的语句如下。
SELECT AVG(Score) AS 平均成绩,MAX(Score) AS 最高分,MIN(Score) AS 最低分 FROM Score WHERE Score >= 60
4、COUNT()函数
cOUNT()函数返回提供的组或记录集中的计数。COUNT()函数可以用于除去text、image、ntext以外任何类型的列。另外,也可以使用星号(*)作为COUNT的表达式,使用星号可以不必指定特定的列而计算所有的行数,当对所有的行进行计数时,则包括空值的行。
例如,查询总记录数的语句如下。
SELECT COUNT(*) AS 总记录数 FROM Score
例如,查询单列(Score)记录总数的语句如下。
SELECT COUNT(Score) AS 分数记录数 FROM Score
以上是关于S1/C#语言和数据库技术基础/10-模糊查询和聚合函数的主要内容,如果未能解决你的问题,请参考以下文章