史莱克书院教务管理系统 第4页

史莱克书院教务管理系统 第4页
COSTRAINT C3 CHECK(年龄<30))
ALTER TABLE 成绩表
ADD COSTRAINT C4 CHECK(成绩>=0 AND 成绩<=100)
2.4物理结构设计(索引创建等)
索引创建
学生表按学号升序建唯一索引
CREATE UNIQUE INDEX 学生学号 ON 学生(学号)
课程信息表按课程编号升序建唯一索引
CREATE UNIQUE INDEX 课程编号引 ON 课程信息(课程编号)
选课表按学号升序和课程编号按降序建唯一索引
CREATE UNIQUE INDEX 选课引 ON 选课(学号 ASC,课程编号 DESC)
成绩表按成绩降序排列建立索引
CREATE CLUSTER INDEX 成绩降序 ON 成绩表(成绩 DESC)
2. 5系统特色设计
系统使用了“SF_终止选课”和“SF_成绩提交”两个存储过程,分别实现结算选课、生成空白成绩单和老师提交最终的成绩单的功能。
CREATE PROC SF_成绩提交 @COURSEID  INT
AS
BEGIN TRAN
--提交成绩,提交后不可以再修改
UPDATE 成绩表 SET 是否已确定成绩=’Y’WHERE 课程编号=@COURSEID  INT
    AND 成绩>0
COMMIT
GO
CREATE PROC SF_终止选课
AS
BEGIN TRAN
--应该单独有一个【终止选课】的功能,终止选课后即生成空的成绩单
--所有学生将不允许更改课程信息,如果需要更改,必须单独申请,特殊处理。
--终止选课一学年应该只能进行一次操作,实例没有制作开始选课的功能,终止
--选课后在学生选课中仍然可以更改选择的课程。
INSERT INTO成绩表(学号,课程编号,成绩,考试次数,是否补修,是否重考,是否已经确定考试成绩)
          SELECT DISTINCT A.学号,B.课程编号,0,1,’N’,’N’,’N’FROM
          选课表 AS A, 课程表 AS B WHERE A.课序号=B.课序号
          AND RTRIM(A.学号)+RTRIM(B.课程编号) NOT IN
               (SELECT RTRIM(学号)+RTRIM(课程编号) FROM 成绩表)
--因为没有记录选课状态,上面的SQL语句加了判断,如果成绩表已有
--该学号/课程,就不插入,实际应用如果是重复的,应该是补修和重考
--的情况,应该更改已有信息的这些状态
--还要注意SELECT 语句加了DISTINCT说明,因为选课表中的一个序号
--一个学生可能有多条选课
COMMIT
GO3. 结果与分析
3.1数据查询                                          
(1)查询学号为20070003同学所缴纳的总费用
 
                 图13 查询学号为20070003同学所缴纳的总费用
(2)查询选修8号课程且成绩在90分以上的所以学生
                   图14 查询选修8号课程且成绩在90分以上的所以学生
(3)查询不及格同学的信息
 
                            图15 查询不及格同学的信息
(4)查询各个课程号、任课教师及相应的选课人数
 
              图16 查询各个课程号、任课教师及相应的选课人数
(5)查询与“崔帅峰”在同一个系学习的学生
 
                 图17查询与“崔帅峰”在同一个系学习的学生
(6)查询少数民族同学所在的班级名称 
                 图18查询少数民族同学所在的班级名称
(7)查询学号为2007001的同学的上课地点都在哪里
查询学好为20070001的雪深的上课地点都在哪里。
SELECT 上课地点
FROM 课程表
WHERE 课程编号 IN (SELECT 课程编号
                    FROM 选课
                    WHERE 卡号=’20070001’)

上一页  [1] [2] [3] [4] [5] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有