《数据库》教案及student数据库课件项目4 基于单表查询数据新_第1页
《数据库》教案及student数据库课件项目4 基于单表查询数据新_第2页
《数据库》教案及student数据库课件项目4 基于单表查询数据新_第3页
《数据库》教案及student数据库课件项目4 基于单表查询数据新_第4页
《数据库》教案及student数据库课件项目4 基于单表查询数据新_第5页
已阅读5页,还剩98页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

项目四基于单表查询数据2项目要求

熟练掌握使用SELECT子句选取字段和记录

熟练掌握使用WHERE子句选择查询

熟练掌握使用ORDERBY子句进行记录排序

熟练掌握使用GROUPBY子句进行数据分组

掌握使用COMPUTEBY子句进行数据汇总

3项目准备

ApplicationLogic客户程序查询请求查询结果集SQLSERVERSELECT*FROMxs查询是通过SELECT语句实现的。4SELECT语句的基本语法格式1SELECT<列名>[INTO<新表名>]FROM<表名>[WHERE<查询条件表达式>][GROUPBY<分组条件表达式>][HAVING<分组统计条件表达式>][ORDERBY<排序的列名>[ASC或DESC]]5SELECT语句的基本语法格式2SELECT语句参数解释:SELECT子句用于指定选择的列或行及其限定INTO子句用于将查询结果集存储到一个新的数据库表中;FROM子句用于指出所查询的表名以及各表之间的逻辑关系;WHERE子句用于指定对记录的过滤条件;GROUPBY子句用于对查询到的记录进行分组HAVING子句用于指定分组统计条件,要与GROUPBY子句一起使用;ORDERBY子句用于对查询到的记录进行排序处理。

6SELECT语句的执行方式方式一:使用【查询设计器】执行SELECT语句

方式二:在【查询分析器】中执行SELECT语句7使用查询设计器执行SELECT语句关系窗格网格窗格SQL窗格结果窗格8查询设计器中的四个窗格关系窗格:用于向查询中添加表或视图对象以及选择输出字段,并允许将相关的表连起来。网格窗格:用于设置显示字段、排序结果、搜索和分组结果的选项。SQL窗格:用于输入和编辑所有的SELECT语句。结果窗格:用于显示SELECT语句执行的结果,并允许添加、修改和删除记录。

9在查询分析器中执行SELECT语句执行步骤:打开【查询分析器】;在【文本编辑区】输入SELECT-SQL语句执行查询10项目4.1

使用SELECT子句选取字段和记录SELECT语句中SELECT子句的格式:SELECT[ALL|DISTINCT][TOPn[PERCENT][WITHTIES]]字段名或表达式说明:ALL:所有记录DISTINCT:选定不重复记录TOPn:符合限制条件的前n个记录TOPn[PERCENT]:符合限制条件的前百分之n个记录11任务1:查询表中所有字段提出任务查询“xs”(“学生”)表中全部记录。分析任务在SELECT子句中使用星号“*”来表示全部记录,不必列出所有字段的名字。12任务1:查询表中所有字段完成任务方法一:通过【查询设计器】操作

选择“xs”(“学生”)表对象,单击鼠标右键,选择快捷菜单【打开表】——【查询】,打开【查询设计器】窗口。在【网格窗格】中,【列】取默认内容“*”,【关系窗格】默认表“xs”(“学生”)表。单击工具栏上的“运行”按钮13任务1:查询表中所有字段方法二:通过【查询分析器】操作打开【查询分析器】,在【数据库选项列表】选择“student”数据库;在【查询分析器】文本编辑区中输入如下代码:SELECT*FROMxs

单击工具栏上的“

”按钮分析代码,如果出现“命令已成功完成”,代表代码正确;执行“

”按钮,查询结果就会出现在下方。

14任务2:选取部分字段提出任务查询“kc”(“课程”)表中kcm(“课程名”)和xf(“学分”)信息。分析任务查询一张表中部分字段,在SELECT子句后面选择字段名,各字段名之间以“,”分隔。15任务2:选取部分字段完成任务方法一:通过【查询设计器】操作选择“xs”(“学生”)表对象,单击鼠标右键,在快捷菜单中选择【打开表】——【查询】,打开【查询设计器】窗口。去掉【网格窗格】中【列】的默认内容“*”,在【列】中选择“kcm”和“xf”字段,或在【关系窗格中选择“kcm”和“xf”字段。单击工具栏上的“

”按钮,查询结果在【结果窗格】中显示。

16任务2:选取部分字段方法二:通过【查询分析器】操作进入【查询分析器】,选择“”,SELECT-SQL代码为:

SELECTkc.kcm,kc.xfFROMkc17任务3:设置查询记录范围提出任务查询“xs”(“学生”)表中“zy”(“专业”)信息。分析任务在SELECT-SQL中,SELECT子句后面的[ALL|DISTINCT][TOPn[PERCENT]表示查询记录范围。查询“xs”表中“zy”信息,可能会出现重复行,可以在SELECT子句中使用DISTINCT关键字来消除重复的记录。18完成任务方法一:通过【查询设计器】操作打开“xs”表对象【查询设计器】窗口。去掉【网格窗格】中【列】的默认内容“*”,在【列】中选择“zy”字段,或在【关系窗格】中选择“zy”字段。在【SQL窗格】中字段名前添加“DISTINCT”关键字,或将光标放在“zy”字段,选择快捷菜单【属性】,勾选【DISTINCT值】复选框,如下图所示。单击工具栏上的“

”按钮,任务3:设置查询记录范围19任务3:设置查询记录范围20任务3:设置查询记录范围方法二:通过【查询分析器】操作进入【查询分析器】;选择“

”;输入SELECT-SQL代码:SELECTDISTINCTzyFROMxs21任务3:设置查询记录范围提出任务查询“kc”(“课程”)表中前三条记录。分析任务查询“kc”(“课程”)表中前三条记录,可以在SELECT子句中加入TOPn关键字即可查询“kc”(“课程”)表中前三条记录。22完成任务方法一:通过【查询设计器】操作打开“kc”表对象【查询设计器】窗口。在【网格窗格】中,选择【列】为“*”;在【SQL窗格】中字段名前添加“TOP3”关键字或在【属性】快捷菜单中勾选【顶端】复选框,在下面文本框里输入“3”,【属性】对话框如下图所示;单击工具栏上的“

”按钮。任务3:设置查询记录范围23任务3:设置查询记录范围24任务3:设置查询记录范围方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:

SELECTTOP3*FROMkc25任务4:设置字段别名提出任务查询“kc”(“课程”)表中所有信息,要求输出字段为:课程代号,课程名,是否必修课。分析任务为了阅读方便,用户可以用更容易理解的字段名称来取代原有字段,在SELECT子句中,可以通过设置字段别名来实现。设置字段别名的方法:原字段名AS字段别名;字段别名=原字段名26任务4:设置字段别名

完成任务方法一:通过【查询设计器】操作打开“kc”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“kcdh”字段,【别名】中输入“课程代号”,依此类推输入“kcm”和“bxk”字段。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示。

27任务4:设置字段别名方法二:通过【查询分析器】操作进入【查询分析器】,选择“

”,SELECT-SQL代码为:

SELECTkc.kcdhas课程代号,kc.kcmas课程名,kc.bxkas是否必修课FROMkc

28任务5:使用计算字段提出任务查询“xs”(“学生”)表中每个学生的年龄信息,要求输出字段为:学号,姓名,性别,年龄。(提示:年龄为当年年份与出生日期年份之差)分析任务“年龄”字段不是“xs”(“学生”)表本身字段,是由数据库表中的“csrq”字段经过运算形成的。表达式为:DATEPART(year,GETDATE())-DATEPART(year,csrq)。

29任务5:使用计算字段完成任务方法一:通过【查询设计器】操作打开“xs”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“xh”字段,【别名】中输入“学号”,依此类推选择“xm”和“xb”字段;再在【列】中输入表达式“DATEPART(year,GETDATE())-DATEPART(year,csrq)”,在【别名】中输入“年龄”。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示。30任务5:使用计算字段方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECTxhAS学号,xmAS姓名,xbAS性别,DATEPART(year,GETDATE())-DATEPART(year,csrq)AS年龄FROMxs31项目练习练习4.1:简述SELECT-SQL语句的语法格式。其中哪些子句是必选项?练习4.2:简述查询设计器中的四个窗格。练习4.3:查询“xs”表中前五个学生的出生年份。要求输出字段为:xh,xm,出生年份。

32项目4.2:

使用WHERE子句进行选择查询基本语法:Where子句语法格式:

Where查询条件说明:查询条件是用运算符连接字段名、常量、变量、函数等而得到的表达式查询条件取值为TRUE或FALSE。满足条件的记录都会包含在查询所返回的结果集中。33项目4.2:

使用WHERE子句进行选择查询Select-SQL语句格式:

Select字段或表达式

From表

[Where选择查询条件]说明:(1)查询条件采用运算符连接。(2)查询条件取值为TRUE或FALSE。(3)查询结果为满足条件后的结果。34Where子句中常用比较运算符运算符含义运算符含义>大于!=不等于>=大于或等于<>不等于<小于!>不大于<=小于或等于!<不小于=等于常见的比较运算符35Where子句中常用逻辑运算符常见的逻辑运算符运算符含义备注between操作数在两者之间,结果为Tlike操作数与模式匹配,结果为T多用于模糊查询And,or,not逻辑“与”、“或”、“非”In,exist“属于”、“包含”运算符常见的“子查询”运算符All,any,some“所有的”、“任意的”、“有些”运算符36任务1:基于比较条件选择查询基本语法:基于比较条件查询子句表达式1比较运算符表达式2

说明:

表达式可以是除text,ntext和image以外类型的表达式。37任务1:基于比较条件选择查询提出任务在“xs”(“学生”)表中查询“zy”(“专业”)为“自动控制”的记录。分析任务

字段:“xs”表记录(*)

表:xs

选择条件:“zy”为“自动控制”(zy=‘自动控制’)38任务1:基于比较条件选择查询完成任务方法一:通过【查询设计器】操作

操作步骤:指定数据源:选择“xs”表,进入查询设计器指定字段:在“网格窗格”中选择“*”指定选择查询条件:选择“zy”字段,在“准则”框中输入“='自动控制'”39任务1:基于比较条件选择查询完成任务方法二:通过【查询分析器】操作

SELECT-SQL代码:SELECTxs.*FROMxsWHEREzy='自动控制'40任务2:基于范围条件选择查询

基本语法:基于范围条件查询子句表达式[NOT]Between

起始值and

终止值说明:(1)表达式必须与起始值和终止值的数据类型相同。(2)如果表达式值在起始值和终止值之间,则运算结果为TRUE,否则为FALSE。41任务2:基于范围条件选择查询提出任务在“kc”(“课程”)表中查询“xf”(“学分”)在3-5分的记录。分析任务字段:“kc”表记录(*)表:kc选择条件:“xf”为3-5分(xfbetween3and5)42任务2:基于范围条件选择查询完成任务方法一:通过【查询设计器】操作

操作步骤:指定数据源:选择“kc”表,进入查询设计器指定字段:在“网格窗格”中选择“*”指定选择查询条件:选择“xf”字段,在“准则”框中输入“between3and5”43任务2:基于范围条件选择查询完成任务方法二:通过【查询分析器】操作

SELECT-SQL代码:Selectkc.*fromkcwherexfBETWEEN3AND5注意点:

在使用BETWEEN限制查询数据范围时,同时包括了边界值,而使用NOTBETWEEN进行查询时不包括边界值。44任务3:基于模糊条件选择查询基本语法:基于模糊条件查询子句字符串表达式[NOT]LIKE模式串说明:(1)字符串表达式为任何有效的字符类型表达式,通常为表中字符型字段。(2)模式串可以包含普通字符和通配符,通过LIKE运算符和通配符来实现模糊查询。45任务3:基于列表条件选择查询基本语法:基于列表条件查询子句被测试表达式[NOT]IN表达式列表说明:被测试的表达式必须与表达式列表的数据类型相同,如果被测试表达式值等于表达式列表中某个值,则运算结果为TRUE,否则为FALSE。46任务3:基于列表条件选择查询提出任务在“xs”(“学生”)表中查询“zy”(“专业”)为“计算机及应用”“信息管理与信息系统”记录。分析任务由题意,表达式列表是(“计算机及应用”,”信息管理与信息系统”)的集合,在where子句后面添加基于“zyIN(“计算机及应用”,”信息管理与信息系统”)”的列表条件来选择查询。47任务3:基于列表条件选择查询完成任务方法一:通过【查询设计器】操作打开“xs”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“*”字段,再在【列】中选择“zy”字段,去除【输出】勾选项,在【准则】中输入“IN(‘计算机及应用’,’信息管理与信息系统’)”。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示48任务3:基于列表条件选择查询方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:

Selectxs.*fromxswherezyIN('计算机及应用','信息管理与信息系统')49任务3:基于模糊条件选择查询通配符的种类:“_”(下划线):代表单个字符,一个汉字或一个全角字符也算一个字符。“%”(百分号):代表0个或多个字符。“[]”(方括号):代表指定范围或集合中的任意一个字符。“[^]”:代表不属于指定范围或集合中的任意一个字符。50任务3:基于模糊条件选择查询提出任务在“xs”(“学生”)表中查询姓“王”,名为两个汉字的学生信息。分析任务字段:“xs”信息(*)表:xs选择条件:姓为“王”,名为两个汉字。

(xmLIKE‘王__‘)51任务3:基于模糊条件选择查询完成任务方法一:通过【查询设计器】操作

操作步骤:指定数据源:选择“xs”表,进入查询设计器指定字段:在“网格窗格”中选择“*”指定选择查询条件:选择“xm”字段,在“准则”框中输入“like‘王__’”52任务3:基于模糊条件选择查询完成任务方法二:通过【查询分析器】操作

SELECT-SQL代码:Selectxs.*fromxswherexmlike‘王__’注意点:“_”通配符只能代表单个字符,此任务要求查询“名为两个汉字”的学生记录,所以需要两个“_”通配符。53任务3:基于模糊条件选择查询提出任务(1)查询包含“吴”字的学生信息。(2)查询姓赵、姓张、姓孙、姓李的学生信息(3)查询学号第二位数字不是0-2的学生信息。分析任务字段:“xs”信息(*)表:xs选择条件:(1)包含“吴”字(xmLIKE'%吴%')

(2)姓赵、姓张、姓孙、姓李(xmLIKE‘[赵钱孙李]%’)

(3)学号第二位数字不是0-2(xhLIKE'_[^0-2]%')54任务3:基于模糊条件选择查询完成任务方法一:通过【查询设计器】操作

操作步骤:指定数据源:选择“xs”表,进入查询设计器指定字段:在“网格窗格”中选择“*”指定选择查询条件:

(1)选择“xm”字段,在“准则”框中输入“like‘%吴%’”(2)选择“xm”字段,在“准则”框中输入“like‘[赵钱孙李]%’”(3)选择“xh”字段,在“准则”框中输入“like'_[^0-2]%'”55任务3:基于模糊条件选择查询完成任务方法二:通过【查询分析器】操作SELECT-SQL代码:(1)SELECTxs.*FROMxsWHERE(xmLIKE‘%吴%’)(2)SELECTxs.*FROMxsWHERE(xmLIKE‘[赵钱孙李]%’)(3)SELECTxs.*FROMxsWHERE(xhLIKE'_[^0-2]%')56任务5:基于NULL值选择查询基本语法:基于NULL(空值)查询子句表达式IS[NOT]NULL57任务5:基于NULL值选择查询提出任务查询“学生”表中没有出生日期的学生信息。分析任务由题意,在where子句后面添加基于“csrqisnull”的空值条件。58任务5:基于NULL值选择查询完成任务方法一:通过【查询设计器】操作打开“xs”表的【查询设计器】窗口;在【网格窗格】中,在【列】中选择“*”字段,再在【列】中选择“csrq”字段,去除【输出】勾选项,在“准则”中输入“ISNULL”。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示。59任务5:基于NULL值选择查询完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:

Selectxs.*fromxswherecsrqISNULL

60任务6:基于多个条件选择查询基本语法:基于多个条件查询子句条件1[逻辑运算符条件2][…n]说明:三种逻辑运算符:AND:如果两个条件均成立,组合起来条件成立。OR:如果两个条件中有一个条件成立,组合起来条件成立。NOT:引出一个条件,将该条件的值取反。它通常与LIKE、BETWEEN、IN和NULL等关键字一起使用。61任务6:基于多个条件选择查询提出任务查询“自动控制”专业的在1983年出生的学生信息分析任务由题意,这是基于多个条件的选择查询:条件1:“zy=’自动控制’”;条件2:“DATEPART(year,csrq)=1983”。且两个条件都成立,选用“AND”作为逻辑运算符。62任务6:基于多个条件选择查询完成任务方法一:通过【查询设计器】操作打开“xs”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“*”字段,在【列】中选择“zy”字段,去除【输出】勾选项,在【准则】中输入“='自动控制'”;在【列】中写上表达式“DATEPART(year,csrq)”,去除【输出】勾选项,在【准则】中输入“=1983”。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示。63任务6:基于多个条件选择查询完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECT*FROMxsWHERE(zy='自动控制')AND(DATEPART(year,csrq)=1983)64项目练习练习4.4:通配符有几种?各代表什么含义?练习4.5:查询年龄在20-23岁之间的学生的xh,xm,zy,年龄。练习4.6:查询所有姓陈的学生的xh和xm。练习4.7:查询“计算机及应用”专业22岁以下的女生姓名65项目4.3:

使用ORDERBY子句进行记录排序任务1:使用ORDERBY子句进行记录排序任务2:使用TOP谓词与ORDERBY子句进行记录排序任务3:使用TOP…WITHTIES谓词与ORDERBY子句进行记录排序项目练习66任务1:使用ORDERBY子句进行记录排序基本语法:ORDERBY子句语法格式:ORDERBY排序条件[ASC|DESC][,…n]说明:Ntext、text和image数据类型的字段不能用在ORDERBY子句中排序条件用于指定排序的依据,它可以是字段名也可以是字段别名。ASC指定字段的值按升序排列,DESC指定字段的值按降序排列。默认排序方式为升序。在orderby子句中可以指定多个字段作为排序依据,记录先按第一排序条件排序,记录相同的情况下,按第二排序条件排序,依此类推。67任务1:使用ORDERBY子句进行记录排序提出任务查询“xs”(“学生”)表中记录,要求先按“zy”(“专业”)排序,再按“xb”(“性别”)排序,然后按“xm”(“姓名”)排序。分析任务由题意,在ORDERBY子句后面添加排序条件:第一排序条件为“zy”;第二排序条件为“xb”;第三排序条件为“xm”;三个条件间用“,”隔开。68任务1:使用ORDERBY子句进行记录排序完成任务方法一:通过【查询设计器】操作打开“xs”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“*”字段,再在【列】中选择“zy”字段,去除【输出】勾选项,在【排序类型】中选择“升序”,【排序顺序】中选择“1”,依次输入第二、三排序条件。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示。69任务1:使用ORDERBY子句进行记录排序完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECT*FROMxsORDERBYzy,xb,xm70任务2:使用TOP谓词与ORDERBY子句进行记录排序基本概念:TOP谓词使用TOP谓词查询表中前面若干条记录,可以有两种情况:在未使用ORDERBY子句,则按照录入原始顺序返回前面若干条记录;若使用ORDERBY子句,则按排序后的顺序返回前面若干条记录基本语法:TOP谓词与ORDERBY子句连用的语法格式SELECT[TOPn]字段或表达式FROM表[ORDERBY排序条件]71任务2:使用TOP谓词与ORDERBY子句进行记录排序提出任务查询“cj”(“成绩”)表中“001”课程成绩前五名的信息。分析任务由题意,先对“cj”(“成绩”)表中“cj”字段排序,再用TOP谓词显示前五名的学生成绩记录。72任务2:使用TOP谓词与ORDERBY子句进行记录排序完成任务方法一:通过【查询设计器】操作选择“cj”(“成绩”)对象,单击鼠标右键,在弹出的快捷菜单中选择【打开表】——【查询】,打开【查询设计器】窗口。在【网格窗格】中,选择【列】为“*”;在【列】中选择“kcdh”字段,去除【输出】勾选项,在【准则】中输入“=’001’”;再在【列】中选择“cj”字段,去除【输出】勾选项,在【排序类型】中选择“降序”,【排序顺序】中选择“1”。在【SQL窗格】中SELECT子句中添加“TOP5”关键字或在【属性】对话框中勾选【顶端】复选框,在下面文本框里输入“5”,单击工具栏上的“”按钮,查询结果在“结果窗格”中显示73任务2:使用TOP谓词与ORDERBY子句进行记录排序完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECTTOP5*FROMcjWHERE(kcdh='001')ORDERBYcjDESC74任务3:使用TOP…WITHTIES谓词与ORDERBY子句进行记录排序基本概念:TOPnWITHTIES谓词若第(n+i)条记录与第n条记录相同,则显示前(n+i)条记录。说明:WITHTIES必须与TOP一起使用,而且只能与ORDERBy子句一起使用75任务3:使用TOP…WITHTIES谓词与ORDERBY子句进行记录排序提出任务查询“cj”(“成绩”)表中“001”课程成绩前五名(包括并列第五名)的信息。分析任务由题意,先对“cj”(“成绩”)表中“cj”字段排序,再用TOP5WITHTIES显示前五名(包括并列第五名)的学生成绩记录。76任务3:使用TOP…WITHTIES谓词与ORDERBY子句进行记录排序完成任务方法一:通过【查询设计器】操作打开“cj”表的【查询设计器】窗口。在【网格窗格】中,选择【列】为“*”;在【列】中选择“kcdh”字段,去除【输出】勾选项,在【准则】中输入“=’001’”;再在【列】中选择“cj”字段,去除【输出】勾选项,在【排序类型】中选择“降序”,【排序顺序】中选择“1”。在【SQL窗格】中SELECT子句中添加“TOP5WITHTIES”关键字,或在【属性】对话框中勾选【顶端】复选框,在下面文本框里输入“5”,勾选【WITHTIES】复选框单击工具栏上的“”按钮,查询结果在“结果窗格”中显示。77任务3:使用TOP…WITHTIES谓词与ORDERBY子句进行记录排序完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECTTOP5WITHTIES*FROMcjWHERE(kcdh='001')ORDERBYcjDESC78项目练习练习4.8:查询全体学生情况。结果按“zy”升序排列,对同一系别按“csrq”降序排列。练习4.9:查询年龄最大的五位学生情况。79项目4.4

使用GROUPBY子句进行数据分组任务1:使用统计函数进行数据计算任务2:使用GROUPBY子句进行数据分组任务3:使用HAVING子句进行分组后筛选项目练习80任务1:

使用统计函数进行数据计算基本概念:统计函数统计函数也称为字段函数或集合函数;统计函数主要用在SELECT子句、ORDERBY子句、HAVING子句中。常见的统计函数有和(SUM)、平均值(AVG)、最大值(MAX)、最小值(MIN)和记录数目(COUNT)等。81任务1:

使用统计函数进行数据计算提出任务计算“cj”(“成绩”)表“001”课程修课人数、总分、平均分。分析任务由题意和SELECT语句的基本语法格式可得出:列名:COUNT(cj)(修课人数)、SUM(cj)(总分)、AVG(cj)(平均分)表名:cj表选择查询条件:kcdh=’001’82任务1:

使用统计函数进行数据计算完成任务方法一:通过【查询设计器】操作打开“cj”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“*”字段,右键选择【分组】快捷菜单,在【分组】中选择“count”,在【别名】中输入“修课人数”;在【列】中选择“cj”字段,在【分组】中选择“sum”,在【别名】中输入“总分”;在【列】中选择“cj”字段,在【分组】中选择“avg”,在【别名】中输入“平均分”。在【网格窗格】中,在【列】中选择“kcdh*”字段,去除【输出】勾选项,【分组】选择“where”,【准则】输入“=’001’”。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示。83任务1:

使用统计函数进行数据计算完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECTCOUNT(*)AS修课人数,SUM(cj)AS总分,AVG(cj)AS平均分FROMcjWHERE(kcdh='001')84任务2:

使用GROUPBY子句进行数据分组基本语法:GROUPBY子句语法格式:

GROUPBY分组条件说明:分组条件是执行分组时所依据的一个表达式,通常是一个字段名。Text、ntext、image以及bit数据类型的字段不能用在分组表达式中。GROUPBY子句执行过程是按一定的条件对查询的结果进行分组,再对每一组数据进行统计计算。85任务2:

使用GROUPBY子句进行数据分组提出任务计算“cj”(“成绩”)表每门课程修课人数、总分、平均分。要求输出字段为kcdh,修课人数、总分、平均分。分析任务由题意和SELECT语句的基本语法格式可得出:列名:kcdh、COUNT(cj)(修课人数)、SUM(cj)(总分)、AVG(cj)(平均分)表名:cj表分组条件:kcdh86任务2:

使用GROUPBY子句进行数据分组完成任务方法一:通过【查询设计器】操作打开“cj”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“kcdh”字段,在【列】中选择“*”字段,右键选择【分组】快捷菜单,在【分组】中选择“count”,在【别名】中输入“修课人数”;在【列】中选择“cj”字段,在【分组】中选择“sum”,在【别名】中输入“总分”;在【列】中选择“cj”字段,在【分组】中选择“avg”,在【别名】中输入“平均分”。在【网格窗格】中,选择“kcdh”所在行,在【分组】选择“分组”。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示。

87任务2:

使用GROUPBY子句进行数据分组完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECTkcdh,COUNT(*)AS修课人数,SUM(cj)AS总分,AVG(cj)AS平均分FROMcjGROUPBYkcdh88任务3:

使用HAVING子句进行分组后筛选基本语法:HAVING子句HAVING分组后筛选条件89任务3:

使用HAVING子句进行分组后筛选提出任务查询“cj”(“成绩”)表中平均分>80的课程学习情况,要求输出字段:课程代号,修课人数、总分、平均分。分析任务由题意和SELECT语句的基本语法格式可得出:列名:kcdh、COUNT(cj)(修课人数)、SUM(cj)(总分)、AVG(cj)(平均分)表名:cj表分组条件:kcdh90任务3:使用HAVING子句进行分组后筛选完成任务方法一:通过【查询设计器】操作打开“cj”表的【查询设计器】窗口。在【网格窗格】中,在【列】中选择“kcdh”字段;在【列】中选择“*”字段,右键单击,选择快捷菜单【分组】,在【分组】中选择“count”,在【别名】中输入“修课人数”;在【列】中选择“cj”字段,在【分组】中选择“sum”,在【别名】中输入“总分”;在【列】中选择“cj”字段,在【分组】中选择“avg”,在【别名】中输入“平均分”。在【网格窗格】中,在【列】中选择“kcdh”所在行,在【分组】选择“分组”。在【网格窗格】中,在【列】中选择“平均分”所在行,在【准则】输入“>80”。单击工具栏上的“”按钮,查询结果在【结果窗格】中显示91任务3:使用HAVING子句进行分组后筛选完成任务方法二:通过【查询分析器】操作进入【查询分析器】;选择“”;SELECT-SQL代码为:SELECTkcdh,COUNT(*)AS修课人数,SUM(cj)AS总分,AVG(cj)AS平均分FROMcjGROUPBYkcdhHAVINGavg(cj)>8092项目练习练习4.10:SQL中常见的统计函数是什么?练习4.11:查询各专业学生总人数。练习4.12:查询每个学生的课程总分、平均分。要求输出字段:xh,总分、平均分。93项目4.5

使用COMPUTE子句汇

温馨提示

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

最新文档

评论

0/150

提交评论