学生成绩管理系统_数据库设计(内含sql查询语句)

  • 格式:doc
  • 大小:30.46 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

m n

N1

N4

1

N2

1 1

N3

1

create database 学生成绩管理系统

go

use 学生成绩管理系统

go

create table 系(

系编号 char(15) NOT NULL UNIQUE,

系名称 char(20) NOT NULL UNIQUE,

constraint 系pk primary key(系编号,系名称)

)

学 生 学号

性别 年龄 姓名 属于

班 级

班号 属于 专 业 开设 系 专

业 代码

专业名

系编号 系名称

选课 课 程 开设 ISA 必修课 选修课 课程号 课程名 学时 学分 开课学期

create table 专业(

专业编号char(15) NOT NULL UNIQUE,

专业名char(20) NOT NULL UNIQUE,

系编号char(15) NOT NULL,

constraint 专业pk primary key(专业编号,专业名),

constraint FK_系_专业foreign key(系编号) references 系(系编号)

)

create table 班级(

班号char(15) NOT NULL UNIQUE,

班名char(20) NOT NULL UNIQUE,

专业编号char(15) NOT NULL,

constraint 班级pk primary key(班号,班名),

constraint FK_专业_班级foreign key(专业编号) references 专业(专业编号) )

create table 学生(

学号char(15) NOT NULL UNIQUE,

姓名char(20) NOT NULL,

性别char(5),

年龄int,

班号char(15),

constraint 学生pk primary key(学号),

constraint 性别ck check(性别='男' or 性别='女'),

constraint 年龄ck check(年龄>0 and 年龄<90),

constraint FK_班级_学生foreign key(班号) references 班级(班号)

)

create table 课程(

课程号char(15) NOT NULL UNIQUE,

课程名char(20) NOT NULL,

学时int,

学分float,

开课学期char(20),

课程性质char(10),

constraint 课程pk primary key(课程号),

constraint 课程性质ck check(课程性质='选修' or 课程性质='必修')

)

create table 选课(

学号char(15) NOT NULL,

课程号char(15) NOT NULL,

成绩float,

constraint 选课pk primary key(学号,课程号),

constraint 成绩ck check(成绩>=0 and 成绩<=100),

constraint FK_学生_选课foreign key(学号) references 学生(学号),

constraint FK_课程_选课foreign key(课程号) references 课程(课程号)

)

create view 学生成绩(学号,姓名,班级,课程名,成绩,学分绩点)

AS

select 选课.学号,姓名,班级=(select 班名from 班级where 班号=(

select 班号from 学生where 学生.学号=选课.学号)),

课程名,成绩,学分绩点=

case

when 成绩>=90 then 学分*4

when 成绩<90 and 成绩>=85 then 学分*3.5

when 成绩<85 and 成绩>=80 then 学分*3

when 成绩<80 and 成绩>=75 then 学分*2.5

when 成绩<75 and 成绩>=70 then 学分*2

when 成绩<70 and 成绩>=65 then 学分*1.5

when 成绩<65 and 成绩>=60 then 学分*1

when 成绩<60then 学分*0

end

from 学生,课程,选课

where 学生.学号=选课.学号and 课程.课程号=选课.课程号