课程关系中的成绩字段的值域定为0-100,如某门课成绩输入105

题目

课程关系中的成绩字段的值域定为0-100,如某门课成绩输入105,将违背关系中的()完整性原则。

  • A、用户定义
  • B、属性
  • C、实体
  • D、参照
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在成绩表中,检索选修3门以上课程的学生的及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。

请将下面的SQL语句补充完整。

SELECT学号,SUM(成绩)FROM【 】;

WHERE成绩>=60;

GROUP BY学号;

【 】COUNT(*)>=3


正确答案:【 】成绩表【 】HAVING
【 】成绩表【 】HAVING 解析:本题中,根据学号将学生记录分组,然后利用SQL的统计函数COUNT(),统计选修3门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。

第2题:

在考生文件夹中有“学生.mdb”数据库。

(1)按照下列要求创建“课程”表。

(2)在“课程”表中输入以下数据。

(3)修改课程“成绩”表的“课程编号”字段类型为文本,字段长度为5,设置“课程”表到课程“成绩”表关系为一对多,实施参照完整性。“课程”表结果如图所示。


正确答案:

第3题:

在成绩表中,检索选修3门以上课程的学生及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。请将下列SQL语句补充完整。SELECT 学号,SUM(成绩) FROM 成绩表; WHERE 成绩>=60; GROUP BY 学号; ______COUNT(*)>=3


正确答案:HAVING
HAVING 解析:在实际的应用中,除了简单的计算查询外,我们还可以加上GROUP BY子句进行分组计算查询。
通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。也就是说,一个结果是由组成一组的每个记录集合产生的。
另外,使用HAVING子句可以对这些组进一步加以控制。用这个子句定义这些组所必须满足的条件,以便将其包含在结果中。
本题中,根据学号将学生记录分组,然后利用SQL的统计函数COUNT(),统计选修3门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。

第4题:

请教:北京华建集团SQL面试题第1大题第1小题如何解答?

【题目描述】

1.已知关系模式:

S (SNO,SNAME)                      学生关系。SNO 为学号,SNAME 为姓名

C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

SC(SNO,CNO,SCGRADE)       选课关系。SCGRADE 为成绩

要求实现如下5个处理:

 1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

 2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

 3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

 4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

 5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

 


【参考答案分析】: 1.找出没有选修过“李明”老师讲授课程的所有学生姓名 --实现代码:Select Sname As 学生姓名 From s Where Not Exists (Select * From c, Sc Where c.Cno = Sc.Cno And Cteacher = '李明' And Sc.Sno = s.Sno);Select Sname As 学生姓名 From s Where Sno Not In (Select Sno From c, Sc Where c.Cno = Sc.Cno And Cteacher = '李明');2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩 --实现代码:Select s.Sno As 学生学号, s.Sname As 学生姓名, Avg(Sc.Scgrade) As 平均成绩 From s, Sc Where Sc.Sno = s.Sno And Sc.Sno In (Select Sc.Sno From Sc Where Sc.Scgrade < 60 Group By Sc.Sno Having Count(*) > 2) Group By s.Sno, s.Sname;3. 列出既学过“01”号课程,又学过“02”号课程的所有学生姓名 --实现代码:select s.sno as 学生学号,s.sname as 学生姓名 from s where sno in(select sc.sno as 学生学号 from c,sc where c.cno=sc.cno and c.cno in('01','02') group by sno having count(distinct sc.cno)=2);4. 列出“01”号课成绩比“02”号同学该门课成绩高的所有学生的学号 --实现代码:select sc1.sno as 学生学号 from sc as sc1,c as c1,sc as sc2,c as c2where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'and sc1.scgrade>sc2.scgrade group by sc1.sno;5. 列出“01”号课成绩比“02”号课成绩高的所有学生的学号及其“01”号课和“02”号课的成绩 --实现代码:select sc1.sno as 学生学号, sc1.scgrade as no1grade ,sc2.scgrade as no2gradefrom sc as sc1,c as c1,sc as sc2,c as c2where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'and sc1.scgrade>sc2.scgrade group by sc1.sno;

答案是:
1.找出没有选修过“李明”老师讲授课程的所有学生姓名
--实现代码:
Select Sname As 学生姓名
  From s
Where Not Exists (Select *
          From c, Sc
         Where c.Cno = Sc.Cno
           And Cteacher = '李明'
           And Sc.Sno = s.Sno);

Select Sname As 学生姓名
  From s
Where Sno Not In (Select Sno
                     From c, Sc
                    Where c.Cno = Sc.Cno
                      And Cteacher = '李明');

2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

  --实现代码:
Select s.Sno As 学生学号, s.Sname As 学生姓名, Avg(Sc.Scgrade) As 平均成绩
  From s, Sc
Where Sc.Sno = s.Sno
   And Sc.Sno In (Select Sc.Sno
                    From Sc
                   Where Sc.Scgrade < 60
                   Group By Sc.Sno
                  Having Count(*) > 2)
Group By s.Sno, s.Sname;

3. 列出既学过“01”号课程,又学过“02”号课程的所有学生姓名

  --实现代码:
select s.sno as 学生学号,s.sname as 学生姓名 from s where sno in(select sc.sno as 学生学号 from c,sc where c.cno=sc.cno and c.cno in('01','02') group by sno having count(distinct sc.cno)=2);

4. 列出“01”号课成绩比“02”号同学该门课成绩高的所有学生的学号

  --实现代码:
select  sc1.sno as 学生学号 from sc as sc1,c as c1,sc as sc2,c as c2
where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'
and sc1.scgrade>sc2.scgrade group by sc1.sno;

5. 列出“01”号课成绩比“02”号课成绩高的所有学生的学号及其“01”号课和“02”号课的成绩

  --实现代码:
select  sc1.sno as 学生学号, sc1.scgrade as no1grade ,sc2.scgrade as no2grade
from sc as sc1,c as c1,sc as sc2,c as c2
where sc1.cno=c1.cno and c1.cno='01' and sc2.cno=c2.cno and c2.cno='02'
and sc1.scgrade>sc2.scgrade group by sc1.sno;

第5题:

在考生文件夹下有“学生.mdb”数据库。

(1)以课程、课程成绩和学生表为数据源,创建“成绩排名”查询,查询各门课程的成绩排名。结果显示按照课程名称和成绩字段降序显示课程名称、学生姓名和成绩字段。

(2)创建宏“成绩排名”宏,运行“成绩排名”查询。

(3)创建“综合操作”窗体,添加“成绩排名”和“课程信息”按钮,分别实现运行“成绩排名”宏和“打开课程窗体”宏。综合操作窗体结果显示如图所示。


正确答案:

第6题:

在考生文件夹下“student.mdb”数据库中有student、选课表和课程表。

(1)以student、选课表和课程表为数据源,创建参数查询“按ID查询成绩”,实现输入学生的ID显示学生成绩,参数提示为“请输入学生ID',结果显示学生姓名、课程名称和成绩字段。查询结果如图所示。

(2)以student、选课表和课程表为数据源,创建生成表查询成绩表,查询每个学生选

课的成绩,结果显示学生姓名、课程名称和成绩字段?生成成绩表如图所示。


正确答案:

第7题:

已知关系模式:

S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名

C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师

SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩

要求实现如下5个处理:

1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩


正确答案:
 

第8题:

“成绩管理”数据库中有3个数据库表“学生信息”、“成绩信息”和“课程信息”。建立文件名为 my,标题为“成绩查询”的表单,表单包含3个命令按钮,标题分别为“查询最高分”、“查询最低分”和“关闭”。

单击“查询最高分”按钮时,调用SQL语句查询出每门课的最高分,查询结果中包含“姓名”,“课程名”和“最高分”三个字段,结果在表格中显示。

单击“查询最低分”按钮时,调用SQL语句查询出每门课的最低分,查询结果中包含“姓名”,“课程名”和“最低分”三个字段,结果在表格中显示。

单击“关闭”按钮时关闭表单。


正确答案:在命令窗口中输入命令:CREATE FORM myf打开表单设计器通过“表单控件”工具栏向表单添加3个命令按钮。选中表单在属性面板中修改Caption的属性值为“成绩查询”在属性面板顶端的下拉框中选择 Command1修改该命令按钮控件的 Caption 属性值为“查询最高分”选择Command2修改该命令按钮控件的Caption 属性值为“查询最低分”选择 Command3修改该命令按钮控件的Caption 属性值为“关闭”。分别编写各个命令按钮的Click 事件。 ******命令按钮Command1(查询最高分)的Click 事件代码。***** SELECT 姓名课程名称MAX(成绩)AS 最高分; FROM 课程信息成绩信息学生信息; WHERE 课程信息.课程号=成绩信息.课程号; AND 学生信息.学号=成绩信息.学号; GROUP BY 课程信息.课程号 ************************************************************ ******命令按钮Command2(查询最低分)的Click 事件代码******* SELECT 姓名课程名称MIN(成绩)AS 最低分; FROM 课程信息成绩信息学生信息; WHERE 课程信息.课程号=成绩信息.课程号; AND 学生信息.学号=成绩信息.学号; GROUP BY 课程信息.课程号 ************************************************************* 最后双击“关闭”按钮在Click 事件中编写程序命令:Thisform. Release。 保存并运行表单。结果如图3-101所示。 图3-101
在命令窗口中输入命令:CREATE FORM. myf,打开表单设计器,通过“表单控件”工具栏向表单添加3个命令按钮。选中表单,在属性面板中修改Caption的属性值为“成绩查询”,在属性面板顶端的下拉框中选择 Command1,修改该命令按钮控件的 Caption 属性值为“查询最高分”,选择Command2,修改该命令按钮控件的Caption 属性值为“查询最低分”,选择 Command3,修改该命令按钮控件的Caption 属性值为“关闭”。分别编写各个命令按钮的Click 事件。 ******命令按钮Command1(查询最高分)的Click 事件代码。***** SELECT 姓名,课程名称,MAX(成绩)AS 最高分; FROM 课程信息,成绩信息,学生信息; WHERE 课程信息.课程号=成绩信息.课程号; AND 学生信息.学号=成绩信息.学号; GROUP BY 课程信息.课程号 ************************************************************ ******命令按钮Command2(查询最低分)的Click 事件代码******* SELECT 姓名,课程名称,MIN(成绩)AS 最低分; FROM 课程信息,成绩信息,学生信息; WHERE 课程信息.课程号=成绩信息.课程号; AND 学生信息.学号=成绩信息.学号; GROUP BY 课程信息.课程号 ************************************************************* 最后双击“关闭”按钮,在Click 事件中编写程序命令:Thisform. Release。 保存并运行表单。结果如图3-101所示。 图3-101 解析:本大题考查了表单设计,在设计控件属性时,不要将控件的标题和名称属性弄混淆了;程序部分考查了MAX,MIN 函数的应用,考生应该熟悉各种函数的应用以及田GROUP BY 与 ORDER BY 的区别。

第9题:

学生选课成绩表的关系模式是SC(S,C,G),其中S为学号,C为课号,G为成绩,关系表达式πS,C(SC)/S表示( )。

A.表S中所有学生都选修了的课程的课号

B.全部课程的课号

C.成绩不小于80的学生的学号.

D.所选人数较多的课程的课号


正确答案:A
“表示针对属性进行的投影运算,“/”表示除运算,可以近似地看作笛卡尔积的逆运算。表达式Ⅱs#.c#(sC)/s表示,首先在关系模式sC中选择属性“学号”与“课号”,结果如下左图。其次在这个关系模式中对关系模式s进行除运算,结果如下右图。则关系式结果表示S中所有学生(sl、S2)都选修了的课程的课号(el、C2)。7cs#,c#(sC)的运算结果7rs#,c#(SC)/S的运算结果故本题选A选项。

第10题:

某教学管理数据库中,学生、课程关系模式分别为:S(学号,姓名,性别,家庭住址,电话),关系S的主键为学号;C(课程号,课程名,学分),关系C的主键为课程号。假设一个学生可以选择多门课程,一门课程可以由多个学生选择;一旦学生选择某门课程必定有该课程的成绩。由于学生与课程之间的‘选课”联系类型为( ),所以对该联系( )。 查询“软件工程”课程的平均成绩、最高成绩与最低成绩之间差值的SQL语句如下: SELECT AVG(成绩)AS平均成绩,( ) FROM C,SC WHERE C.课程名=’软件工程’AND C.课程号=SC.课程号;

A.n:mB.1:nC.n:1D.1:1A.不需要构建一个独立的关系模式B.需要构建—个独立的关系模式,且关系模式为:SC(课程号,成绩)C.需要构建—个独立的关系模式,且关系模式为:SC(学生号;成绩)D.需要构建一个独立的关系模式,且关系模式为:SC(学生号,课程号,成绩)A.差值AS MAX(成绩)-MIN(成绩)B.MAX(成绩)-MIN(成绩)AS差值C.差值IN MAX(成绩)-MIN(成绩)D.MAX(成绩)-MIN(成绩)IN差值


正确答案:A,D,B

更多相关问题