学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 北大“数据库原理”上机实践题目总结(1)

北大“数据库原理”上机实践题目总结(1)

2007年07月18日    来源:   字体:   打印

  一、现有关于学生成绩管理数据库的模式如下:

  学生(学号,姓名,性别,出生日期,系号);

  课程(课号,课程名,学分);

  选修(学号,课号,成绩)

  学生与课程的联系是M:N联系。

  1.按题目要求建立表结构,各表各个字段的名字、数据类型、长度等根据语义和查询的需要自行决定。可根据以下题目的需要建立索引。

  有些题目则可能需要建立中间表或临时表。 (15分)

  2.利用你所熟悉的方法向各表录入适量的、满足题目需要的数据。各数据项的取值范围应该合理、有效,并与查询要求相呼应。 (10分)

  3.编写一个对选修表的数据修改程序。用学号和课号定位记录,找到后,显示该记录,并提示用户确认“真的要修改吗?”,

  根据用户回答决定程序流程。

  要求只允许修改成绩信息,不退出本程序能继续进行修改操作。 (20分)

  4.用FoxPro语言或SQL语言编写程序完成以下查询。(以下四题依次为10分、10分、15分、20分)

  (1)列出学生名单,要包含所有学生的所有属性,且在更后一行显示:

  女生的平均年龄为 xx 岁。

  (2)按照学分对课程进行分类,列出每类学分的课程数,且在更后一行显示

  课程总数为 xx 门。

  (3)检索选修课号为C2的学生的姓名、课程名和成绩,检索结果按成绩的降序排列。

  (4)检索与ZANG同学同龄的学生的学号、姓名、课程名和成绩,并列表显示。

  答案:3

  set talk off

  clear

  use sc

  index on sno +cno to 11

  dimension d(3)

  action=.t.

  answer=.t.

  do while action

  a=space(6)

  b=space(4)

  @ 1,1 say “sno:” get a picture “xxxxxx”

  @ 2,1 say “cno” get b picture “xxxx”

  read

  c=a+b

  seek c

  if found()

  scatter to d

  @ 5,2 say “sno” get d(1) picture“xxxxxx”

  @ 7,2 say “cno” get d(2) picture“xxxx”

  clear gets

  @ 9,2 say “grade” get d(3) picture“999.9”

  read

  @ 11,2 say “真的修改吗?” get answer picture “l”

  read

  if answer

  clear

  gather from d

  @ 1,1 say “修改后的数据已存入!”

  endif

  if .not.answer

  clear

  endif

  endif

  if .not.found()

  clear

  @ 1,1 say “查无此人”

  endif

  @ 4,1 say “继续查吗?” get action picture “l”

  read

  clear

  enddo

关闭