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-模糊查询和聚合函数的主要内容,如果未能解决你的问题,请参考以下文章

S1/C#语言和数据库技术基础/11-连接查询和分组查询

S1/C#语言和数据库技术基础/08-用SQL语句操作数据

S1/C#语言和数据库技术基础/02-C#语法快速热身

S1/C#语言和数据库技术基础/01-第一个C#程序

S1/C#语言和数据库技术基础/03-使用属性升级MyBank

S1/C#语言和数据库技术基础/06-程序数据集散地:数据库