数据库技术与应用(基础查询查询结果操作)_第1页
数据库技术与应用(基础查询查询结果操作)_第2页
数据库技术与应用(基础查询查询结果操作)_第3页
数据库技术与应用(基础查询查询结果操作)_第4页
数据库技术与应用(基础查询查询结果操作)_第5页
已阅读5页,还剩10页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

张俊杰庄德俊SQL技术与应用——数据库中的数据使用T-SQL语言简介第一节基础查询第二节

第三节目录Contents复杂查询第二节基础查询12简单查询条件查询3

查询结果操作3查询结果操作(1)对查询结果进行排序对查询结果集的相应列进行排序,将查询结果按一个或多个列值的顺序输出语句格式:Select<字段列表>from<表名>where<逻辑表达式>Orderby<排序字段>[asc|desc]【说明】1.orderby子句中的排序字段可以表示排序列或列的别名和表达式,当有多个排序列时,

每个排序列之间使用逗号隔开,而且各列后都可以跟一个排序要求。2.asc关键字表示升序,desc关键字表示降序,默认为asc。3.使用orderby子句查询时,若存在Null值,则空值被视为最小的可能值。4.ntext、text、image、xml类型的列不能用于orderby子句。【功能】使用orderby子句可以对查询结果集的相应列进行排序3(1)对查询结果进行排序【例1】:查询学号、课程号、成绩,并按成绩升序排列

selectsno,cno,scorefromscorderbyscore【例2】:查询学生的姓名、班级、查询结果按班名升序、

姓名降序处理

selectsname,classfromsorderbyclass,snamedesc(例1)(例2)查询结果操作3查询结果操作(2)查询结果生成新表使用Select查询获取的数据可以作为一个新表来使用。在select语句中,可使用into关键字将查询结果集生成新表。语句格式:Select<字段列表>into<新表名>from<表名>【功能】使用into关键字将查询结果集生成新表3(2)查询结果生成新表【例1】:创建补考学生表BK,包括学号、课程号、成绩。

selectsno,cno,scoreintobkfromscwherescore<=60select*frombk(例1)查询结果操作3查询结果操作(3)使用聚合函数查询聚合函数对一组值执行计算,并返回单个值。常用聚合函数:Count:求个数,返回数据的数量。

//例:count(1,3,5)=3Sum:求和,返回表达式中所有值的和。

//例:sum(1,3,5)=9Avg:求平均值,返回表达式中所有值的平均值。//例:avg(1,3,3,5)=3Max:求最大值,返回表达式中所有值的最大值。//例:max(1,3,5)=5Min

:求最大值,返回表达式中所有值的最小值。//例:min(1,3,5)=1【功能】1.除count函数以外,其他聚合函数都会忽略空值。2.使用聚合函数时可以使用AS关键字设置别名。3.聚合函数中可以使用表达式。3(3)使用聚合函数查询【例1】:查询所有学生选修课程数量、总分、平均分、最高分、最低分。

selectCOUNT(*)as选课数,SUM(score)as总分,AVG(score)as平均分,MAX(score)as最高分,MIN(score)as最低分fromsc查询结果操作3查询结果操作(4)对查询结果进行分组使用groupby子句可以对查询结果进行分组,如果select子句中包含聚合函数,则计算分组的汇总值。语句格式:Select<字段列表>from<表名>where<逻辑表达式>Groupby<分类字段>【说明】1.groupby子句中的分类字段可以包含多个列。2.select后面的检索内容必须是聚合函数或groupby子句中的分类字段。3.如果select子句中包含聚合函数,则groupby将计算每组的汇总值。3(4)对查询结果进行分组【例2】:查询每个学生选修课程数量、总分、最高分。

selectsno,count(*)as选课数,sum(score)as总分,maxas最高分fromscgroupbysno查询结果操作【例1】:查询学生表S中男生、女生的人数

selectsex,count(*)as人数fromsgroupbysex(例1)(例2)3(4)对查询结果进行分组【例2】:要求对学生表中的数据进行分组汇总,按学生出生年份进行分组,统计各年份对应的学

生数量。提示:使用datepart函数返回日期中的指定部分,yyyy代表年份。

selectDATEPART(yyyy,birthday)as年,COUNT(*)as人数fromsgroupbyDATEPART(yyyy,birthday)查询结果操作3查询结果操作(5)对分组结果进行过滤having子句用来指定组或者聚合的搜索条件,通常在groupby子句中使用语句格式:Select<字段列表>from<表名>where<逻辑表达式>Groupby<分类字段>[having<检索条件>]【说明】使用having子句查询与where关键字类似,都是在关键字后面插入条件表达式来

规范查询结果,两者的不同体现在一下几点:1.where关键字针对列的数据,having则是针对结果组。2.where关键字不能与聚合函数一起使用,而having一般都与聚合函数结合使用。3.where关键字在分组前对数据进行过滤,having语句只过滤分组后的数据。3(5)对分组结果进行过滤【例2】:查询选修2门以上课程的学生学号selectsnofromscgroupbysnohavingcount(*)>=2查询结果操作【例1】:查询平均成绩及格的学生所选课程的数量、总分

及最高分和最低分

selectsno,count(*)as选课数,sum(score)as

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论