要开发一个学生成绩管理系统,在数据库的数据表中应该包括:学生编号

题目

要开发一个学生成绩管理系统,在数据库的数据表中应该包括:学生编号、学生姓名、性别、课程编号、课程名称、课程成绩等字段。请根据关系规范化理论,要求满足第三范式,请问该数据库中应该建立哪些数据表?每个数据表应该包括哪些字段?

参考答案和解析
正确答案: 应该分别建立学生、课程、和成绩3个数据表。
其中学生数据表(xs.dbf)包括:学生编号、学生姓名、性别3个字段;
课程数据表(kc.dbf)包括:课程编号、课程名称2个字段;
成绩数据表(cj.dbf)包括:学生编号、课程编号、课程成绩3个字段。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

(1)在考生文件夹中有一个“学生管理”数据库,其中有数据库表“学生”存放学生信息,使用菜单设计器制作一个名为“cd1”的菜单,菜单包括“数据管理”和“文件”两个菜单栏。每个菜单栏都包括一个子菜单。菜单结构如下:

数据管理

数据查询

文件

保存

关闭

其中,“数据查询”予菜单对应的过程完成下列操作:打开数据库“学生管理”,使用SQL的SELECT语句查询数据库表“学生”中的所有信息,然后关闭数据库。

“关闭”菜单项对应的命令为“SET SYSMENU TO DE-FAULT”,使之可以返回到系统菜单。保存菜单项不做要求。

(2)在考生文件夹中有一个数据库“学生管理”,其中有数据库表“学生”、“课程”和“成绩”。

用SQL语句查询“计算机基础”课程的考试成绩在80分以下(含80分)的学生的全部信息并将结果按学号升序存入“result.dbf”文件中(表的结构同“学生”,并在其后加入成绩字段),将SQL语句保存在“cx1.prg"文件中。


正确答案:
【考点指引】本大题第1小题考查的是菜单和子菜单的设计及菜单过程代码的编写;第2小题考查的是简单编程,主要考查SQL SELECT语句的使用。
(1)【操作步骤】
①选择【文件】→【新建】命令,选择“菜单”,单击“新建文件”按钮,再单击“菜单”按钮,打开菜单设计器,在“菜单名称”中输入“数据管理”,在“结果”下拉列表框中选择“子菜单”,单击“创建”按钮创建“数据管理”子菜单。
②输入子菜单名称“数据查询”,在“结果”下拉列表框中选择“过程”,单击“创建”按钮创建“数据查询”子菜单过程,在菜单过程代码编辑窗口中输入以下代码:
0PEN DATABASE学生管理
SELECT*FROM学生
CLOSE DATABASE
关闭菜单过程代码编辑窗口回到菜单设计器。
③在菜单设计器左边的“菜单级”下拉列表框中选择“菜单栏”返回到主菜单设计画面,单击下一行,输入菜单名称“文件”,在“结果”下拉列表框中选择“子菜单”,单击“创建”按钮创建“文件”子菜单。
④输入子菜单名称“保存”,单击下一行,输入子菜单名称“关闭”,在“结果”下拉列表框中选择“命令”,在右边的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。
⑤选择【菜单】→【生成】命令,将菜单保存为“cd1”,生成一个菜单文件“cd1.mpr”。关闭菜单设计窗口,在命令窗口输入命令:DO cd1.mpr,运行菜单。
(2)【操作步骤】
①在命令窗口中输入命令:MODI COMM cx1(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中输入以下代码:
SELECT学生.*,成绩INTO TABLE result FROM学生,课程,成绩WHERE学生.学号=成绩.学号AND课程.课程编号=成绩.课程编号AND成绩<=80 AND课程名称=”计算机基础”ORDER BY学生.学号
关闭程序文件编辑窗口并保存程序文件。
②在命令窗口中输入命令:DO cx1(回车执行),执行程序文件。

第2题:

查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“数据库原理”的“成绩”,并按成绩由高到低的顺序排列,下列语句中正确的是 ( )。

A.SELECT学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; FOR学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

B.SELECT 学生.姓名.学生.系名.成绩.成绩JOIN学生,课程,成绩; ON学生.学号=成绩.学号; ON课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

C.SELECT学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; WHERE学生.学号=成绩.学号; OR课程.课程编号=成绩.课程编号; OR课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC

D.SELECT 学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; WHERE 学生.学号=成绩.学号; AND 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY成绩.成绩 DESC


正确答案:D
解析:本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用,如果使用超连接方式查询,则正确的语句格式为:
SELECT……
FROM数据库表1>INNER JOIN数据库表2>
ON连接条件>
WHERE……
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON连接条件>指定两个进行表连接的条件字段。
如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。

第3题:

(1)“学生管理”数据库下有3个表,使用菜单设计器制作一个名为“ed2”的菜单,菜单只有一个“成绩计算”菜单项。该菜单项中有“按学号计算”、“按课程编号计算”和“关闭”3 个子菜单:“按学号计算”子菜单使用SQL语句的AVG函数统计各学生的平均成绩,统计结果中包括“学号”、“平均成绩”;“按课程编号计算”子菜单使用SQL语句的AVG函数统计各课程的平均成绩,统计结果中包括“课程编号”、“平均成绩”。“关闭”子菜单负责返回到系统菜单。

(2)在数据库“学生管理”中建立视图“view1”,显示学生表中的所有记录,并按“出生日期”升序排序。建立表单“bd1”,在表单上添加“表格”控件显示新建立的视图的记录。


正确答案:
【考点指引】本大题第l小题考查的是菜单的设计,重点是菜单过程代码的编写;第2小题中考查的是视图的创建。
(1)【解题步骤】
①选择【文件】→【新建】命令,选择“菜单”,单击“新建文件”按钮,再单击“菜单”按钮,打开菜单设计器,在“菜单名称”中输入“成绩计算”,在“结果”下拉列表框中选择“子菜单”,单击“创建”按钮创建“成绩计算”子菜单。
②输入子菜单名称“按学号计算”,在“结果”下拉列表框中选择“过程”,单击“创建”按钮创建“按学号计算”子菜单过程,在菜单过程代码编辑窗口中输入以下代码:SE-LECT学号,AVG(成绩)AS平均成绩FROM成绩GROUP BY学号。
关闭菜单过程代码编辑窗口返回到菜单设计器。
③单击下一行,输入子菜单名称“按课程编号计算”,在“结果”下拉列表框中选择“过程”,单击“创建”按钮创建“按课程编号计算”子菜单过程,在菜单过程代码编辑窗口中输入以下代码:
SELECT课程编号,AVG(成绩)AS平均成绩FROM成绩GROUP BY课程编号器。
④单击下一行,输入子菜单名称“关闭”,在“结果”下拉列表框中选择“命令”,在右边的“命令”文本框中编写代码:SET SYSMENU TO DEFAULT。
⑤选择【菜单】→【生成】命令,将菜单保存为“cd2”,生成一个菜单文件“cd2.mpr”。关闭菜单设计窗口,在命令窗口输入命令:DO cd2.mpr,看到VisualFoxPro的菜单栏被新建的菜单所代替,单击“关闭”菜单命令将恢复系统菜单。
(2)【解题步骤】
①选择【文件】→【打开】命令,在“打开”对话框的“文件类型”下拉列表框中选择“数据库”,选择“学生管理.dbc”,单击“确定”按钮,打开数据库设计器。
②选择【文件】→【新建】命令,选择“视图”,单击“新建文件”按钮打开“添加表或视图”对话框,选择“表”单选项,选择数据库“学生管理”和数据库中的表“学生”,单击“添加”按钮将数据表“学生”添加到视图设计器中,
然后关闭“添加表或视图”对话框。
③在视图设计器中单击“字段”选项卡,单击“全部添加”按钮,将“可用字段”列表框中的字段全部添加到右边的“选定字段”列表框中。
④在视图设计器中单击“排序依据”选项卡,在“排序依据”选项卡中的“字段名”下拉列表框中选择“学生.出生日期”字段,单击“添加”按钮,将“学生.出生日期”字段添加到右边的“排序条件”列表框中,在“排序条件”中选择“升序”单选项。
⑤在视图设计器中单击“关闭”按钮,将视图文件以“view1”名保存。
⑥选择【文件】→【新建】命令,选择“表单”,单击“新建文件”按钮打开表单设计器,单击表单控件工具栏上的“表格”控件图标,添加一个表格控件。
⑦在表单设计器中,用鼠标右键单击表单空白处,在弹出的快捷菜单中选择“数据环境”命令,打开表单的数据环境,选择数据库“学生管理”,选定“视图”将视图“view1”添加
到数据环境中。
⑧选择表格控件“Grid1”,在表格控件属性窗口中将“RecordSource”属性值修改为“view1”,将“RecordSourceType”属性值修改为“l”。
⑨选择【表单】→【执行表单】命令,系统首先要求保存该表单文件,在弹出的“另存为”对话框中输入表单文件名“bd1”,保存在考生文件夹下,然后运行表单。

第4题:

第下列各题中使用如下数据表。 “学生”表:学号C(8),姓名C(8),性别c(2),系名(6) “课程”表:课程编号C(4),课程名称c(12),开课系名C(10) “成绩”表:学号c(8),课程编号c(4),成绩N(6,2) 检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。

A.SELECT课程.课程名称,学生.姓名,MAX(成绩). As最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程编号

B.SELECT课程.课程名称,学生.姓名,MAX(成绩) AS最高分 FROM成绩,课程,学生 wHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程.课程编号

C.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS.最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 ORDER BY课程.课程编号

D.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.!学号 ORDER BY课程.课程编号


正确答案:B
本题中首先通过GROUl’BY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的三个表之间建立联系。

第5题:

用SQL语句创建简单数据表

设教学管理数据库中有多张数据表,其中学生表Student包括学生编号Sno,学生姓名

Sname,学生年龄Sage,学生性别Ssex字段;Sno和Sname为字符型(长度20), Sage为整型,

Ssex为位型。Sno是主键。

课程表Course包括课程编号Cno,课程名Cname,授课教师Teacher字段;三个字段均为

字符型(长度20) , Cno是主键。

请用SQL语句创建上面的两张数据表。


参考答案CREATE TABLE Student(
  Sno CHAR(20) PRIMARY KEY,
  Sname CHAR(20),
  Sage Int,
  Ssex Bit
  );
  CREATE TABLE Course(
  Cno CHAR(20) PRIMARY KEY,
  Cname CHAR(20),
  Teacher CHAR(20)
  );

第6题:

检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。

A.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUP BY 课程编号

B.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; GROUP BY 课程.课程编号

C.SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDER BY 课程.课程编号

D.SELECT 课程.课程名称=学生.姓名,MAX(成绩) AS 最高分; FROM 成绩,课程,学生; WHERE 成绩.课程编号=课程.课程编号; AND 成绩.学号=学生.学号; ORDER BY 课程.课程编号


正确答案:B
解析:本题中首先通过GROUPBY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX()函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及到多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的3个表之间建立联系。

第7题:

在已打开数据库的情况下,利用SQL派生一个包含姓名、课程名称和成绩字段的xsview视图,正确的语句是( )。

A.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩,成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; WHERE 成绩.课程编号=课程.课程编号; AND 学生.学号=成绩.学号

B.CREATE VIEW xsview AS; (SELECT 学生.姓名,课程.课程名称,成绩.成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号)

C.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩.成绩; WHERE 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号

D.CREATE VIEW xsview AS; SELECT 学生.姓名,课程.课程名称,成绩.成绩; FROM 学生 INNER JOIN 成绩; INNER JOIN 课程; ON 成绩.课程编号=课程.课程编号; ON 学生.学号=成绩.学号


正确答案:D
解析:利用SQL命令可以定义直接建立视图,命令格式如下:
CREATE VIEW 视图名 AS;
SELECT语句
本题中要注意的是在定义视图时,SELECT语句部分不需要用括号括起来,在进行超连接查询时,可使用的 SQL命令格式如下:
SELECT……
FROM数据库表1>INNER JOIN数据库表2>
ON连接条件>
WHERE……
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON连接条件>指定两个进行表连接的条件字段。
注意:连接类型在FROM子句中给出,并不是在 WHERE子句中,连接条件在ON子句中给出。

第8题:

(1)将考生文件夹下的自由表“课程”添加到数据库“学生管理”中。

(2)从数据库“学生管理”中永久性地删除数据库表“学生一bak”,并将其从磁盘上删除。

(3)为数据库“学生管理”中的表“课程”建立主索引,索引名称和索引表达式均为“课程编号”,为数据库中的表“成绩”建立普通索引,索引名称和索引表达式均为“课程编号”。

(4)建立表“课程”和表“成绩”之间的关联。


正确答案:
【考点指引】本大题主要考查数据库设计器的基本操作,包括添加自由表、删除表、索引创建和建立表阍联系,这些都可以在数据库设计器中完成。
(1)【操作步骤】
①选择【文件】→【打开】命令,在“打开”对话框的“文件类型”下拉列表框中选择“数据库”,选择“学生管理.dbc”,选择“独占”,单击“确定”按钮,打开数据库设计器。
②在“数据库设计器”中,单击右键选择“添加表”,在“打开”对话框中选择表“课程”,单击“确定”按钮将自由表“课程”添加到数据库“学生管理”中。
(2)【操作步骤】
①在数据库设计器中,选择表“学生_bak”,单击右键,在弹出的快捷菜单中选择“删除”命令,单击“删除”按钮,将表“学生_bak”从“学生管理”数据库中移除并将其从磁盘上删除。
②选择【数据库】→【清理数据库】命令清理数据库。
(3)【操作步骤】
①在数据库设计器中,选择表“课程”,选择【数据库】→【修改】命令,打开表设计器修改表“课程”结构,在“课程”表设计器的“索引”选项卡的“索引名”中输入“课程编号”,选择索引类型为“主索引”,索引表达式为“课程编号”,单击“确定”按钮关闭表设计器并保存表“课程”结构。
②在数据库设计器中,选择表“成绩”,选择【数据库】→
【修改】命令,打开表设计器修改表“成绩”结构,在“成绩”表设计器的“索引”选项卡的“索引名”中输入“课程编号”,选择索引类型为“普通索引”,索引表达式为“课程编号”,单击“确定”按钮关闭表设计器并保存表“成绩”结构。
(4)【操作步骤】
在数据库设计器中,将“课程”表中“索引”下面的“课程编号”主索引字段拖曳到“成绩”表中“索引”下面的“课程编号”索引字段上,建立两个表之间的永久性联系。

第9题:

使用如下三个数据库表: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名称C(20)) 成绩(学号C(8),课程编号C(8),成绩N(5,1)) 查询所有选修了“高等数学”的学生的“相关”成绩,要求信息中包括学生姓名和成绩,并按成绩由低到高的顺序排列,下列语句正确的是( )。

A. SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

B. SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

C. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; GROUP BY成绩.成绩ASC

D. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC


正确答案:D
本小题为多表连接查询,注意每两个表之间进行关联的关键字,利用ORDER BY短语可以对查询结果进行排序,升序关键字为ASC。选项A和选项B中缺少数据表文件。选项C中,GROUP BY短语使用错误,将查询结果进行排序的短语是0RDER BY。

第10题:

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

(1)创建窗体“学生成绩”查询,在窗体中添加组合框“学生编号”,绑定学生表的学生编号字段。

(2)修改“成绩表,”查询,设置学生编号字段条件为“学生成绩查询”窗体组合框内的值。创建宏“成绩表”,运行成绩表查询。

(3)在“学生成绩查询”窗体中添加“查询成绩”按钮,实现运行“成绩表”查询。学生成绩查询窗体如图所示。

单击查询成绩按钮后显示如下结果:


正确答案:

更多相关问题