对每门课程,求学生的选课人数和学生的平均成绩,并且将结果存入数据库 select.使用SELECT

> 问题详情
若要求查找选修“数据库技术”这门课程的学生姓名和成绩,将使用关系()。在查找的数据库“学生-选课-
悬赏:0&答案豆
提问人:匿名网友
发布时间:
若要求查找选修“数据库技术”这门课程的学生姓名和成绩,将使用关系( )。在查找的数据库“学生-选课-课程”中存在的3个关系为: S(S#, SNAME,SEX,AGE), SC(S#,C#,GRADE), C(C#,CNAME,TEACHER)A.S,SCB.SC,CC.S,CD.S,SC,C
网友回答(共0条)
我有更好的答案
您可能感兴趣的试题
1关系模型有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。哪类(些)完整性是关系模型必须满足并由DBMS自动支持的?&(&)A.实体完整性B.实体完整性和参照完整性C.参照完整性和用户定义的完整性D.实体完整性、参照完整性和用户定义的完整性2下面哪一条成立时,称X→Y为平凡的函数依赖?&(&)A.B.C.D.
相关考试课程
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……数据库第三章习题参考答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据库第三章习题参考答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
你可能喜欢对每一门课,求学生的平均成绩,并把结果以基本表的形式存入数据库_百度知道
对每一门课,求学生的平均成绩,并把结果以基本表的形式存入数据库
对每一门课,求学生的平均成绩,并把结果以基本表的形式存入数据库
提问者采纳
reate table table_name as select 课程,avg(成绩) from 来源表 group by 课程;不知道成不成,成绩 from 来源表 where 1 = 0;insert into table_name select 课程,你试试
确定没打错?报什么错?
提问者评价
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁数据库基础与应用课程期末综合练习及答案 71
| | | 三亿文库资料来自互联网,有疑问请联系客服:
数据库基础与应用课程期末综合练习及答案 71
数据库基础与应用课程期末综合练习;一、单项选择题;1.设D1、D2和D3域的基数分别为2、3和4,;2.若一个关系为R(学生号,姓名,性别,年龄),;3.设一个集合A={3,4,5,6,7},集合B;4.在一个关系R中,若存在X→(Y,Z),则也隐;5.若一个关系的任何非主属性都不部分依赖于任何候;6.Access数据库中的“一对多”指的是(一条;7.文本型数据库基础与应用课程期末综合练习一、单项选择题1.设D1、D2和D3域的基数分别为2、3和4,则D1?D2?D3的元组数为( 24 )。2.若一个关系为R(学生号,姓名,性别,年龄),则(学生号 )适合作为该关系的主码。3.设一个集合A={3,4,5,6,7},集合B={1,3,5,7,9},则A和B的并集中包含有( 7 )个元素。4. 在一个关系R中,若存在X→(Y,Z),则也隐含存在X→Y和X→Z,称此为函数依赖的( 分解性 )规则。5.若一个关系的任何非主属性都不部分依赖于任何候选码,则称该关系最高达到了(第二 )范式。6.Access数据库中的“一对多”指的是(一条记录可以与不同表中的多条记录相联系 )。7.文本型字段最多可以存放( 255 )个字符。8.下列()图标是Access的标志。9.Access中的字段说明用于对字段作进一步的描述,当光标处于该字段内时,其字段说明被显示在(状态栏)上。10.Access 2000中数据访问页有两种视图,它们是设计视图和(页面)视图。11.域是实体中相应属性的(取值范围 )。12.把保存关系定义的关系称为对应数据库的(元关系 )。13.在一个关系R中,若存在X→Y,则XZ→Y也成立,称此为函数依赖的(自增性 )规则。14. 设一个关系为R(A,B,C,D,E,F),它的最小函数依赖集为FD={A→B,A→C,A→D,D→E,D→F},则该关系的候选码为( A )。15.在SQL中,对基本表进行插入和修改记录的命令为( insert和update )。16.Access2000数据库是(关系 )型数据库。17.如果字段内容为声音文件,可将此字段定义为( OLE对象 )类型。18.在建交叉表查询的过程中,最多可以选择( 3 )个行标题字段。19.显示包含警告信息或其他信息的消息框,应该使用的操作是( MsgBox )。20.下列(二、是非判断题(√)1.当建立和删除一个视图时,对相应的基本表没有影响。(×)2.由概念设计进入逻辑设计时,原来的1对1或1对多联系通常都需要被转换为对应的基本表。(√)3.概念设计也要贯彻概念单一化原则,即一个实体中的所有属性都是直接用来描述码的。(×)4.在对象数据模型中,对象既不能够继承,也不能够嵌套。(√)5.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,课程号,成绩),求出所有选课的学生信息的运算表达式为?学生号(X)与S的自然连接。(√)6. SQL Server 2000中的整数类型包括bigint、int、smallint和tinyint 四种。(×)7. SQL Server 2000不能通过查询分析器和企业管理器这两种工具来完成数据库的管理工作。(√)8. 当指定基本表中某一列或若干列为主码时,则系统将在这些列上自动建立一个唯一值、聚集和非空的索引。 (√)9. 用于配置客户端网络连接的工具是客户端网络实用工具。(×)10. 局部变量的开始标记为@@,全局变量的开始标记为@。(√)11.在人工管理和文件管理阶段,程序设计依赖于数据表示。(√)12.在一个关系中,不同的列可以对应同一个域,但必须具有不同的列名。(√)13.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,课程号,成绩),则姓名为变量K的值的学生所选修的全部课程信息所对应的运算表达式为C???课程号(X??(δ姓名=K(S)))。(×)14.若一个关系的任何非主属性都不部分依赖和传递依赖于任何候选码,则该关系还没有达到第三范式。(√)15. 在SQL中,每个视图中的列可以来自不同的表,每个视图是在原有表的基础上建立的逻辑意义上的新关系。 (×)16. 在SQL Server 2000中,主数据文件、次数据文件和事务日志文件的默认扩展名依次为ldf、ndf和mdf。 (√)17. 定义为varchar数据类型的字段或变量能够自动去掉尾部空格以节省存储空间。(×)18. 在一个已存在数据的表中增加一列时,可以把所增加的列定义为非空值。(×)19. 索引不可以加速selcet语句中Order By和Group By选项的执行速度。(√)20. 一个局部变量的作用范围局限于一个批处理内,即两个GO语句之间的那一部分。)图标是Access中新建宏的标志。(×)21.DBMS只提供数据定义语句,不提供数据操纵语句供用户使用。(×)22.在一个关系R中,若X→Y,并且X的任何真子集都不能函数决定Y,则称X→Y为部分函数依赖, (√)23.基本表属于全局模式中的表,它是实表,而视图则属于局部模式中的表,它是虚表。(×)24.当修改一个视图时,不会对相应的基本表产生任何影响。(√)25. 当指定基本表中某一列或若干列为UNIQUE约束时,则系统将在这些列上自动建立一个唯一值索引。 (√)26. SQL Server2000数据库应用的处理过程分布在客户机和服务器上。(×)27. 安装SQL Server2000时,不必以系统管理员的身份登录操作系统。(√)28. SQL Server2000的datetime或smalldatetime数据类型主要用来存储日期和时间的组合数据。 (×)29. 索引一经创建既可以由SQL Server2000系统又可以由用户使用和维护。(√)30. 调用一个存储过程执行时,若它不是批处理中的第一条语句,则需要使用exec语句进行调用。三、填空题1. 数据处理技术依次经历了人工管理、(文件管理、数据库管理)以及分布式数据库管理等四个发展阶段。2.关系数据模型包括(关系数据结构、关系完整性规则)和关系运算三个方面。3.学生关系中的院系号属性与院系关系中的院系号主码属性相对应,则(院系号)属性为(学生)关系中的外码。4.一个关系若存在 (部分)函数依赖和(传递)函数依赖,则必然会造成数据冗余和操作异常。5.在新版的SQL中,查询所涉及到的表及表之间的连接是在from选项中实现的,表之间的连接共有三种方式,分别称为中间连接、(左连接))和(右连接(次序无先后))。6.数据库系统具有(数据结构化、数据共享(次序无先后))、数据独立性、数据粒度小、独立的数据操作界面、由DBMS统一管理等优点。7.在实体中能作为码的属性称为(主属性),否则称为(非主属性)。8.关系完整性包括(实体)完整性、(参照(次序无先后))完整性和用户定义的完整性三个方面。9.在一个关系R中,“职工号”函数决定“姓名”既是(非平凡)函数依赖,又是(完全(次序无先后))函数依赖。10.设一个关系为R(A,B,C,D,E,F),它的最小函数依赖集为FD={A→B,A→C,D→E,D→F},则该关系的候选码为((A,D)),该候选码含有(2)属性。11.Access中的表间关系有1对1、(1对多)和(多对多(次序无先后))三种。、12.一个Access数据库对应于操作系统中的(1)个文件,其文件扩展名为(mdb)。13.查询可以作为窗体、(报表)和(数据访问页(次序无先后))的数据源。14.报表由报表页眉、页面页眉、主体、(页面页脚)和(报表页脚(次序无先后))等5节组成。15. Access为用户提供了多种数据库安全措施,如设置用户(密码)和(权限(次序无先后))。16. 数据库处理技术依次经历了人工管理、(文件管理)、(数据库管理)、以及分布式数据库管理等四个发展阶段。、17.关系数据模型包括关系数据结构、(关系完整性规则)和(关系运算)三个方面。18.在一个关系R中,若存在“学号→系号,系号→系主任”,则隐含存在着(学号)函数决定(系主任)。19.一个关系若存在(部分)函数依赖和(传递)函数依赖,则必然会造成数据冗余和操作异常。20.关系数据库中的每个关系都必须最低达到(第一)范式,关系中的每个(属性(字段))都是不可再分的。21.在(文件)系统中,数据没有独立的操作界面,在(数据库)系统中,数据具有独立的操作界面。22. 关系数据库系统具有(数据结构)单一、采用(集合运算)、数据完全独立、数学理论支持等优点。23.在SQL新版的查询语句中,select选项实现(投影)运算,from选项实现(连接)运算,where选项实现选择运算。24. 设一个关系为R(A,B,C,D,E,F),它的最小函数依赖集为FD={A→B,C→D,B→E,E→F},则该关系的候选码为((A,C)),该候选码含有(2)属性。、25.在SQL中,主码约束的关键字为(primary key),外码约束的关键字为(foreign key )。26.Access2000的用户操作界面由(标题栏)、(菜单栏(次序无先后))、工作区、工具栏、状态栏等五个部分组成。27.定义表中的字段就是确定表的结构,即确定表中每个字段的(名称)、(类型(次序无先后))属性和说明等内容。28.在Access数据库系统中,查询可以作为(窗体)、(报表(次序无先后))和数据访问页的数据源。29.在Access中创建带子窗体的窗体时,必须确定作为(主)窗体和 (子)窗体的数据源之间存在着1对多的关系。30.Access模块窗口中的代码编辑窗口由对象列表框、(代码)编辑区和(过程(次序无先后))事件列表框等三部分组成。四、根据主教材第四章所给的商品库和教学库,按照下列前9小题的每条SQL查询语句写出相应的功能,或者按照下列后6小题的每种功能写出相应的SQL查询语句。在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int)商品表2(商品代号 char(8),产地 char(6),品牌 char(6),)在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,专业 char(10),年级 int)课程(课程号 char(4),课程名 char(10),课程学分 int选课(学生号 char(7),课程号 char(4),成绩 int)1.select x.*from 学生 x, 选课 ywhere x.学生号=y.学生号答案:从教学库中查询出选修了课程的所有学生信息。2.select *from 学生where exists (select *from 选课where 学生.学生号=选课.学生号group by 选课.学生号 having count(*)=3)从教学库中查询出同时选修了3门课程的全部学生信息。3.select x.*,课程名,课程学分,成绩from 学生 x,课程 y,选课 zwhere x.学生号=z.学生号 and y.课程号=z.课程号order by x.学生号,z.成绩答案:从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序。4.select x.商品代号,分类名,数量,品牌from 商品表1 x,商品表2 ywhere x.商品代号=y.商品代号答案:从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。5.select *from 学生where 学生号 in (select 学生号from 选课group by 学生号 having count(*)=2)答案:从教学库中查询出选修2门课程的全部学生。6.select x.学生号,y.学生号,y.课程号from 选课 x,选课 ywhere x.学生号=@s1 and y.学生号=@s2and x.课程号=y.课程号从教学库中查询出学生号为@s1的学生和学生号为@s2的学生所选修的共同课程的课程号。7.select distinct 产地from 商品表2答案:从商品库中查询出所有商品的不同产地。8.select *from 课程where 课程号 in (select 课程号from 选课group by 课程号 having count(*)&5)答案:从教学库中查询出被5个以上学生选修的全部课程。9.select *from 学生where exists (select *from 选课where 学生.学生号=选课.学生号)答案:从教学库中查询出所有选修了课程的学生信息。10.从商品库中查询出每种商品的商品代号、单价、数量和产地。答案:select 商品表1.商品代号,单价,数量,产地from 商品表1,商品表2where 商品表1.商品代号=商品表2.商品代号11.从教学库中查询出姓名叫做“王明”的学生的所有选课的课程名及成绩。答案:select 课程名,成绩from 学生,课程,选课where 学生.学生号=选课.学生号 and 课程.课程号=选课.课程号 and 姓名=&王明&12.从商品库中查询出数量大于10的商品种数。答案:select count(*)from 商品表1where 数量&1013.从商品库中查询出比所有商品单价的平均值要高的全部商品。答案:select *from 商品表1where 单价&all(select avg(单价) from 商品表1)14.从商品库中查询出数量在10和20之间的所有商品。答案:select *from 商品表1where 数量 between 10 and 20 (或where 数量&=10 and 数量&=20)15.从商品库中查询出数量最多的一种商品。答案:select *from 商品表1where 数量=some(select max(数量)from 商品表1 )五、根据下面所给的AAA数据库,写出每小题所能实现的功能。假设使用名称为AAA的数据库,它包括Students(学号 char(8),姓名 varchar(8),年龄 int,专业 varchar(20),入学日期 DateTime)和Score(学号 char(8),课程名 varchar(10),成绩 numeric(5,2))两张表。1. select year(入学日期) as 入学年份,count(*) as 人数from studentsgroup by year(入学日期)答案:从Students表中分组统计出每个年份入学的学生人数。2. declare @a numeric(5,2)set @a=(select avg(成绩) from Score)select count(*) as 人数from Scorewhere 成绩&=@a答案:从Score表中查询出大于等于平均成绩的记录个数。3. select month(入学日期) as 入学月份,count(*) as 人数 from studentsgroup by month(入学日期)答案:从students表中分组统计出每个月份入学的学生人数。4.create procedure xxk6(@a char(8),@b varchar(10))asbegindelete from scorewhere 学号=@a and 课程名=@bend答案:从score表中删除学号为@a的值、课程名为@b的值的学生成绩记录。5. create procedure xxk1asbeginselect *from students x,score ywhere x.学号=y.学号end答案:显示出AAA库中所有学生的记录信息及选课成绩。6. create procedure xxk6(@a char(8),@b varchar(10))asbegindelete from scorewhere 学号=@a and 课程名=@bend答案:从score表中删除学号为@a的值、课程名为@b的值的学生成绩记录。包含各类专业文献、文学作品欣赏、幼儿教育、小学教育、专业论文、应用写作文书、中学教育、数据库基础与应用课程期末综合练习及答案 71等内容。【】最新搜索
 数据库基础与应用课程期末综合练习、期末复习数据库基础与应用课程期末综合练习、期末复习隐藏&& 数据库基础与应用课程期末综合练习 一、单项选择题 1.设 D1、D2 和...
 数据库基础与应用课程期末复习_理学_高等教育_教育专区。中央广播电视大学 数据库...(计信息管理)试题参考答案及评分标准 2 一、单项选择题,把合适的选项编号填写...
 数据库基础与应用期末重... 19页 免费 数据库技术—ACCESS习题... 19页 免费...(*)=1 8. select x.* from 课程 x,选课 y where x.课程号=y.课程号 ...
 2 C. 3 D. 4 D.Sub Access2010《数据库基础与应用》期末综合练习题 3/9 答案: C 11、在 VBA 中,类型说明符 # 表示的数据类型是___。 A.整型 B.长...
 电大-数据库基础与应用期末试题汇总(5套)_电大_...课程(课程号 char(4),课程名 char(10),课程学分...姓名 end 参考答案一、单选题(每小题 2 分,共 ...
 Chrvi 数据库基础与应用期末重点复习题 第一章 数据库系统概论 填空题 1.数据...设一个学生关系为 S(学生号,姓名),课程关系为 C(课程号,课程名),选课关系...
 275 Access2010《数据库基础与应用》期末综合练习题 5 / 22 [C]选 C [D]选 D 答案: B 第 8 题: (单选题, 1 分) 设 x=9,执行下列程序段后,变量 ...
 数据库基础与应用综合练习题与答案给学生_工学_高等...(6)) 在名称为教学库的数据库中包含有学生、课程...数据库基础与应用期末重... 19页 免费 数据库基础...
┃&热点推荐50个常用sql语句 网上流行的学生选课表的例子
字体:[ ] 类型:转载 时间:
这篇文字在网上被转载烂了,里面有些sql适合用在应用系统里,有些“报表”的感 觉更重些,主要是想复习前者
50个常用sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score&b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) &60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 & 9、查询所有课程成绩小于60分的同学的学号、姓名; select S#,Sname from Student where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score&60); 10、查询没有学全所有课的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) &(select count(C#) from Course); 11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名; select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001'; 12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名; select distinct SC.S#,Sname from Student,SC where Student.S#=SC.S# and C# in (select C# from SC where S#='001'); 13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩; update SC set score=(select avg(SC_2.score) from SC SC_2 where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平'); 14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名; select S# from SC where C# in (select C# from SC where S#='1002') group by S# having count(*)=(select count(*) from SC where S#='1002'); 15、删除学习“叶平”老师课的SC表记录; Delect SC from course ,Teacher where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平'; 16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、 号课的平均成绩; Insert SC select S#,'002',(Select avg(score) from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002'); 17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分 SELECT S# as 学生ID ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语 ,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩 FROM SC AS t GROUP BY S# ORDER BY avg(t.score) 18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分 SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分 FROM SC L ,SC AS R WHERE L.C# = R.C# and L.score = (SELECT MAX(IL.score) FROM SC AS IL,Student AS IM WHERE L.C# = IL.C# and IM.S#=IL.S# GROUP BY IL.C#) AND R.Score = (SELECT MIN(IR.score) FROM SC AS IR WHERE R.C# = IR.C# GROUP BY IR.C# ); 19、按各科平均成绩从低到高和及格率的百分数从高到低顺序 SELECT t.C# AS 课程号,ame)AS 课程名,isnull(AVG(score),0) AS 平均成绩 ,100 * SUM(CASE WHEN isnull(score,0)&=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数 FROM SC T,Course where t.C#=course.C# GROUP BY t.C# ORDER BY 100 * SUM(CASE WHEN isnull(score,0)&=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004) SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分 ,100 * SUM(CASE WHEN C# = '001' AND score &= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数 ,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分 ,100 * SUM(CASE WHEN C# = '002' AND score &= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数 ,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分 ,100 * SUM(CASE WHEN C# = '003' AND score &= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数 ,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分 ,100 * SUM(CASE WHEN C# = '004' AND score &= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数 FROM SC 21、查询不同老师所教不同课程平均分从高到低显示 SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,ame) AS 课程名称,AVG(Score) AS 平均成绩 FROM SC AS T,Course AS C ,Teacher AS Z where T.C#=C.C# and C.T#=Z.T# GROUP BY C.C# ORDER BY AVG(Score) DESC 22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004) [学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩 SELECT DISTINCT top 3 SC.S# As 学生学号, Student.Sname AS 学生姓名 , T1.score AS 企业管理, T2.score AS 马克思, T3.score AS UML, T4.score AS 数据库, ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分 FROM Student,SC LEFT JOIN SC AS T1 ON SC.S# = T1.S# AND T1.C# = '001' LEFT JOIN SC AS T2 ON SC.S# = T2.S# AND T2.C# = '002' LEFT JOIN SC AS T3 ON SC.S# = T3.S# AND T3.C# = '003' LEFT JOIN SC AS T4 ON SC.S# = T4.S# AND T4.C# = '004' WHERE student.S#=SC.S# and ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) NOT IN (SELECT DISTINCT TOP 15 WITH TIES ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) FROM sc LEFT JOIN sc AS T1 ON sc.S# = T1.S# AND T1.C# = 'k1' LEFT JOIN sc AS T2 ON sc.S# = T2.S# AND T2.C# = 'k2' LEFT JOIN sc AS T3 ON sc.S# = T3.S# AND T3.C# = 'k3' LEFT JOIN sc AS T4 ON sc.S# = T4.S# AND T4.C# = 'k4' ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC); 23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ &60] SELECT SC.C# as 课程ID, Cname as 课程名称 ,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85] ,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70] ,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60] ,SUM(CASE WHEN score & 60 THEN 1 ELSE 0 END) AS [60 -] FROM SC,Course where SC.C#=Course.C# GROUP BY SC.C#,C 24、查询学生平均成绩及其名次 SELECT 1+(SELECT COUNT( distinct 平均成绩) FROM (SELECT S#,AVG(score) AS 平均成绩 FROM SC GROUP BY S# ) AS T1 WHERE 平均成绩 & T2.平均成绩) as 名次, S# as 学生学号,平均成绩 FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) AS T2 ORDER BY 平均成绩 25、查询各科成绩前三名的记录:(不考虑成绩并列情况) SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数 FROM SC t1 WHERE score IN (SELECT TOP 3 score FROM SC WHERE t1.C#= C# ORDER BY score DESC ) ORDER BY t1.C#; 26、查询每门课程被选修的学生数 select c#,count(S#) from sc group by C#; 27、查询出只选修了一门课程的全部学生的学号和姓名 select SC.S#,Student.Sname,count(C#) AS 选课数 from SC ,Student where SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1; 28、查询男生、女生人数 Select count(Ssex) as 男生人数 from Student group by Ssex having Ssex='男'; Select count(Ssex) as 女生人数 from Student group by Ssex having Ssex='女'; 29、查询姓“张”的学生名单 SELECT Sname FROM Student WHERE Sname like '张%'; 30、查询同名同性学生名单,并统计同名人数 select Sname,count(*) from Student group by Sname having count(*)&1;; 31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime) select Sname, CONVERT(char (11),DATEPART(year,Sage)) as age from student where CONVERT(char(11),DATEPART(year,Sage))='1981'; 32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列 Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ; 33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩 select Sname,SC.S# ,avg(score) from Student,SC where Student.S#=SC.S# group by SC.S#,Sname having avg(score)&85; 34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数 Select Sname,isnull(score,0) from Student,SC,Course where SC.S#=Student.S# and SC.C#=Course.C# ame='数据库'and score &60; 35、查询所有学生的选课情况; SELECT SC.S#,SC.C#,Sname,Cname FROM SC,Student,Course where SC.S#=Student.S# and SC.C#=Course.C# ; 36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数; SELECT distinct student.S#,student.Sname,SC.C#,SC.score FROM student,Sc WHERE SC.score&=70 AND SC.S#=student.S#; 37、查询不及格的课程,并按课程号从大到小排列 select c# from sc where scor e &60 order by C# ; 38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名; select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score&80 and C#='003'; 39、求选了课程的学生人数 select count(*) 40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩 select Student.Sname,score from Student,SC,Course C,Teacher where Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# ); 41、查询各个课程及相应的选修人数 select count(*) from sc group by C#; 42、查询不同课程成绩相同的学生的学号、课程号、学生成绩 select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C# &&B.C# ; 43、查询每门功成绩最好的前两名 SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数 FROM SC t1 WHERE score IN (SELECT TOP 2 score FROM SC WHERE t1.C#= C# ORDER BY score DESC ) ORDER BY t1.C#; 44、统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,查询结果按人数降序排列,若人数相同,按课程号升序排列 select C# as 课程号,count(*) as 人数 from sc group by C# order by count(*) desc,c# 45、检索至少选修两门课程的学生学号 select S# from sc group by s# having count(*) & = 2 46、查询全部学生都选修的课程的课程号和课程名 select C#,Cname from Course where C# in (select c# from sc group by c#) 47、查询没学过“叶平”老师讲授的任一门课程的学生姓名 select Sname from Student where S# not in (select S# from Course,Teacher,SC where Course.T#=Teacher.T# and SC.C#=course.C# and Tname='叶平'); 48、查询两门以上不及格课程的同学的学号及其平均成绩 select S#,avg(isnull(score,0)) from SC where S# in (select S# from SC where score &60 group by S# having count(*)&2)group by S#; 49、检索“004”课程分数小于60,按分数降序排列的同学学号 select S# from SC where C#='004'and score &60 50、删除“002”同学的“001”课程的成绩 delete from Sc where S#='001'and C#='001'; 作者 不常在
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 数据库 select 的文章

 

随机推荐