查询语句,模糊查询和聚合函数的使用-SQLServer数据库教案

发布时间:2020-10-15   来源:文档文库   
字号:

5-SQL Server语句

上一节课我们学习了使用SQL语句创建数据库、使用数据库、创建数据库表、向表中插入数据、在数据库中查询数据。这节课继续学习查询语句,模糊查询和聚合函数的使用。 学习之前回顾一下上节课内容:
1、创建数据库和数据库表:create database 数据库名、use 数据库名、create table 表名(;
--创建数据库School

create database School;

--使用数据库

use School;

--创建数据库表 class

create table class( id int primary key, --编号 整数 主键 name nvarchar(20 not null, --姓名 字符 非空 phone nvarchar(50, --电话 字符 age int, --年龄 整数 score float --分数 小数

;
--向表中插入数据

insert into class(id,names,age,score

select 1,'刘德华',18,56.5 union

select 2,'李娜',18,56.5 union

select 3,'张杰',18,56.5 union

select 4,'刘诗诗',18,56.5

2、查询语句:select 列名 from 表名 where条件 order by 列名 升降序
查询全部数据
3、使用系统函数进行查询、更新:replace(指定的字符串,字符串中原有的字符, 替换以后的字符; 适用场景:批量替换列值中的某个字符串(用到更新数据)
Update 表名 set 列名=replace(列名,,zhang; --将张全部替换成“zhang

本章目标:
熟悉通配符的用法
掌握likebetweenin模糊查询的用法 掌握聚合函数的用法






1、通配符
定义:通配符是一类字符,他它可以代替一个或多个真正的字符,查找信息时作为替代字符出现。T-SQL中的通配符必须与like关键字一起使用,以完成特殊的约束或要求。
使用情况:和like关键字进行模糊查询,一般用于查询字符型列值 -- 查询表中所有数据 select * from class; -- 查询姓张的学生 select * from class where names like '%';

% 任意长度的字符串

_ 一个字符 -- 查询名字叫'_'的学生
[] 括号中所指定范围内的一个字符 select * from class where names like'_';

[^] 不在括号中所指定范围内的一个字符

-- 查询名字中有''的学生 select * from class where names like'%[]%'; -- 查询名字中不包含''的学生 select * from class where names like'%[^]'; 2、使用between在某个范围内进行查询
定义:查找那些介于两个已知的值之间的一组未知值。要实现这种查找,必须知道查找的起始值和最终值,使用and关键字分开。
使用场景:一般用于数字列(分数区间)、日期列(日期区间) select * from class where score between 70 and 90;

注意:起始值要小于最终值,否则会查询不到任何信息。 Between查询结果会包含起始值和最终值。

3、使用in在列举值内进行查询
定义:查询的值是指定的某些值之一,列举值之间用逗号分开。 使用场景:查询符合某些特定值的实体。 select * from class where score in(70,84; 等同于select * from class where score=70 or score=84;
注意:字符串要用单引号包围,数值型则不用单引号。

4、聚合函数
查询中汇经常碰到取某些列的最大值、最小值、平均值等,有时还要统计查询到多少行数据。这时候就会用到聚合函数,聚合函数是基于某一列的值进行计算,将多个值合并成一个值,返回结果只会是一行一列的单个数值。






1sum(函数
定义:求和,空值将会被忽略。
使用场景:统计数字型列的总和,不能对字符、日期等类型进行汇总。
select sum(scoreas 总分 from class;

语法:select sum(列名 as 别名 from 表名 where 条件; 注意:如果不起别名,返回结果将会显示“无列名”

此种查询只返回一个数值,因此不能两列共用一个sum(进行查询,不会报错,但无法执行

分组查询:统计班级中男生和女生的总分数、平均分,如何进行?先按照性别进行男生女生分组,然后再利用sum(函数进行求和。
select sex,sum(score as 总分数 from Stu group by sex;
思考:查询男生、女生各有多少人?男生最高分、女生最高分?

2avg(函数
定义:求平均值,空值将会被忽略。
使用场景:统计数字型列的总和,不能对字符、日期等类型进行汇总。

select avg(scoreas 平均分 from class where score>60;

语法:select avg(列名 as 别名 from 表名 where 条件;
3max(min(函数
定义:求最大、最小值,空值将会被忽略。
使用场景:可以对数字型、字符、日期/时间等类型的列。

select max(scoreas 最高分,min(scoreas 最低分,avg(scoreas 平均分,sum(scoreas 总分from class;

4count(函数
定义:返回提供的组或记录集中的计数。Count(函数可以用于出去textimagentext以外的任何类型的列。
使用场景:count(*不指定特定的列,而计算所有的行数,当对所有的行进行计数时,空值行也计数。

select count(* as 总计数 from stu;

select count(scoreas 总计数 from stu;




注意:count(列名 as 别名 ,查询单列记录,总记录数会忽略空值。


本文来源:https://www.2haoxitong.net/k/doc/00798faa81c4bb4cf7ec4afe04a1b0717ed5b320.html

《查询语句,模糊查询和聚合函数的使用-SQLServer数据库教案.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式