教务管理系统
苏伟2012012567
目录第一章数据库设计
1.1 实体属性图设计
1.2 实体关系图设计
1.2 关系模式
1.3 数据表结构
1.4 数据库关系图
第二章创建数据库
2.1 建立数据库
2.2 建立数据表
第三章插入数据
3.1 insert语句插入数据
3.2 excel导入数据
第一章数据库设计1.1 ER图设计
如图1-1教师实体属性图
教师
教师编号
教师姓名
性别职称入职时间
教研室编号
电话
电子邮箱
图1-1 如图1-2 教室实体属性图
教室
教室编号
教室名称
容纳人数
教学楼编号
负责人姓名
教室类型
图1-2 如图1-3 课程实体属性图
课程
课程编号
课程名称
专业编号
图1-3
如图1-4 课程班实体属性图
课程班
课程班编号
课程班名称
教师编号教室编号
课程编号
学分
学时
课程属性
图1-4
如图1-5学生实体关系图
学生姓名
出生日期手机号码
电子邮箱
班级编号
学号
性别
籍贯
图1-5 如图1-6 成绩实体关系图
成绩
成绩编号
课程班编号平时成绩期末成绩
学号
图1-6 如图1-7 班级实体关系图
班级
班级编号
班级名称
班级人数专业编号
班长姓名
图1-7
如图1-8 教研室实体关系图
教研室
教研室编号
教研室名称
专业编号教师人数研究方向
图1-8
如图1-9 专业实体关系图
专业
专业编号
专业名称
学院编号专业人数
图1-9
如图1-10 学院实体关系图
学院学院编号
学院名称
院长姓名学院联系
方式
校区编号
图1-10
如图1-11 教学楼实体关系图
教学楼
教学楼编号教学楼名称校区编号
图1-11
如图1-12 校区实体属性图
校区名称
校区编号校区地址
校区
图1-12
如图1-1 校区实体属性图
校区
校区编号校区地址
校区名称
图1-1
如图
第二章创建数据库
2.1 建立数据库
create database db
on
(
name='db',
filename='F:\123\db.mdf',
size=5MB,
filegrowth=5%
)
go
2.2 建立数据表
2.2.1建立教师表
create table教师
(
教师编号nchar(8)primary key(教师编号),
教师姓名nchar(10)not null,
电子邮箱nchar(30)not null,
性别nchar(1)not null,
职称nchar(5)not null,
入职时间datetime null,
电话nchar(15)null,
教研室编号nchar(8)not null,
foreign key(教研室编号)references教研室(教研室编号)
)
教师数据类型数据长度索引类型是否为空备注教师编号nchar() 8 主键否
教师姓名nchar()10 —否
电子邮箱nchar() 30 —否
性别nchar() 1 —否
职称nchar() 5 —否
入职时间datetime —是
电话nchar()15 —是
教研室编号nchar()8 外键否
2.2.2建立教室表
2.2.3建立课程表
create table课程
(
课程编号nchar(10)primary key(课程编号),
课程名称nchar(25)not null,
专业编号nchar(6)not null,
foreign key(专业编号)references专业(专业编号)
)
课程数据类型数据长度索引类型是否为空备注课程编号nchar() 10 主键否
课程名称nchar() 25 —否
专业编号nchar() 6 外键否
2.2.4建立课程班表
create table课程班
(
课程班编号nchar(8)primary key(课程班编号),
课程班名称nchar(20)not null,
学时tinyint not null,
学分numeric(4,1)not null,
教室编号nchar(6)not null,
教师编号nchar(6)not null,
课程编号nchar(10)not null,
foreign key(教师编号)references教师(教师编号),
foreign key(教室编号)references教室(教室编号),
foreign key(课程编号)references课程(课程编号)
)
alter table课程班add课程属性nchar(8)
课程班数据类型数据长度索引类型是否为空备注课程班编号nchar() 8 主键否
课程班名称nchar() 20 —否
学时tinyint —否
学分numeric() 4,1 —否
教室编号nchar() 6 外键否
教师编号nchar() 6 外键否
课程编号nchar() 10 外键否
课程属性nchar() —否
2.2.5建立学生表
create table学生
(
学号nchar(10)primary key(学号),
姓名nchar(10)not null,
性别nchar(1)null,
出生日期datetime null,
手机号码nchar(15)null,
电子邮箱nchar(30)null,
班级编号nchar(8)not null,
籍贯nchar(20)null,
foreign key(班级编号)references班级(班级编号)
)
学生数据类型数据长度索引类型是否为空备注学号nchar() 10 主键否
姓名nchar() 10 —否
性别nchar() 1 —是
出生日期datetime —是
手机号码nchar() 15 —是
电子邮箱nchar() 30 —是
班级编号nchar() 8 —否
籍贯nchar() 20 外键是
2.2.6建立成绩表
create table成绩
(
学号nchar(10)not null,
成绩编号nchar(12)primary key(成绩编号),
课程班编号nchar(8)not null,
平时成绩numeric(6,2)null,
期末成绩numeric(6,2)null,
foreign key(学号)references学生(学号),
foreign key(课程班编号)references课程班(课程班编号)
)
成绩数据类型数据长度索引类型是否为空备注学号nchar() 10 —否
成绩编号nchar() 12 主键否
课程班编号nchar() 8 —否
平时成绩numeric() 6,2 外键是
期末成绩numeric() 6,2 外键是
2.2.7建立班级表
create table班级
(
班级编号nchar(8)primary key(班级编号),
班级名称nchar(15)not null,
班级人数int null,
专业编号nchar(6)not null,
班长姓名nchar(10)null,
foreign key(专业编号)references专业(专业编号)
)
班级数据类型数据长度索引类型是否为空备注班级编号nchar() 8 主键否
班级名称nchar() 15 —否
班级人数int —是
专业编号nchar() 6 —否
班长姓名nchar() 10 外键是
2.2.8建立教研室表
create table教研室
(
教研室编号nchar(8)primary key(教研室编号),
教研室名称nchar(20)not null,
教师人数tinyint null,
研究方向nchar(50)null,
专业编号nchar(6)not null,
foreign key(专业编号)references专业(专业编号)
)
教研室数据类型数据长度索引类型是否为空备注教研室编号nchar() 8 主键否
教研室名称nchar() 20 —否
教师人数tinyint —是
研究方向nchar() 60 —是
专业编号nchar() 6 外键否
2.2.9建立专业表
create table专业
(
专业编号nchar(6)primary key(专业编号),
专业名称nchar(25)not null,
专业人数int null,
学院编号nchar(4)not null,
foreign key(学院编号)references学院(学院编号)
)
专业数据类型数据长度索引类型是否为空备注专业编号nchar() 6 主键否
专业名称nchar() 25 —否
专业人数int —是
学院编号nchar() 4 外键否
2.2.10建立学院表
create table学院
(
学院编号nchar(4)primary key(学院编号),
学院名称nchar(20)not null,
院长姓名nchar(10)not null,
学院联系方式nchar(15)not null,
校区编号char(2)not null,
foreign key(校区编号)references校区(校区编号)
)
学院数据类型数据长度索引类型是否为空备注学院编号nchar() 4 主键否
学院名称nchar() 20 —否
院长姓名nchar() 10 —否
nchar() 15 —否
学院联系方
式
校区编号char() 2 外键否
2.2.11建立教学楼表
create table教学楼
(
教学楼编号nchar(6)primary key(教学楼编号),
教学楼名称nchar(20)not null,
校区编号char(2)not null,
foreign key(校区编号)references校区(校区编号)
)
教学楼数据类型数据长度索引类型是否为空备注教学楼编号nchar() 6 主键否
教学楼名称nchar() 20 —否
校区编号char() 2 外键否
2.2.12建立校区表
create table校区
(
校区编号char(2)primary key(校区编号),
校区名称nchar(10)not null,
校区地址nchar(30)not null
)
校区数据类型数据长度索引类型是否为空备注校区编号char() 2 主键否
校区名称nchar() 10 —否
校区地址nchar() 30 —否
2.2.13建立时间表
create table时间
(
时间编号nchar(8)primary key(时间编号),
节nchar(8)not null,
星期nchar(8)not null,
周数int not null,
学期编号nchar(8)not null,
foreign key(学期编号)references学期(学期编号)
)
时间数据类型数据长度索引类型是否为空备注时间编号nchar() 8 主键否
节nchar() 8 —否
星期nchar() 8 —否
周数int —否
学期编号nchar() 8 外键否
2.2.14 建立学期表
create table学期
(
学期编号nchar(8)primary key(学期编号),
学期nchar(8)not null,
学年编号nchar(8)not null,
foreign key(学年编号)references学年(学年编号)
)
学期数据类型数据长度索引类型是否为空备注学期编号nchar() 8 主键否
学期nchar() 8 —否
学年编号nchar() 8 外键否
2.2.15建立学年表
create table学年
(
学年编号nchar(8)primary key(学年编号),
学年nchar(8)not null
)
学年数据类型数据长度索引类型是否为空备注学年编号nchar() 8 主键否
学年nchar() 8 —否
2.2.16 建立选课表
create table选课
(
选课编号nchar(8)primary key(选课编号),
课程班编号nchar(8)not null,
时间编号nchar(8)not null,
学号nchar(10)not null,
foreign key(课程班编号)references课程班(课程班编号),
foreign key(时间编号)references时间(时间编号),
foreign key(学号)references学生(学号)
)
选课数据类型数据长度索引类型是否为空备注选课编号nchar() 8 主键否
课程班编号nchar() 8 —否
时间编号nchar() 8 —否
学号nchar() 10 —否
选课
PK 选课编号FK1课程班编号FK2时间编号FK3
学号
教研室PK 教研室编号 教研室名称 教师人数
研究方向
班级PK
班级编号 班级名称 班级人数
班长姓名
学年PK 学年编号
学年
学期PK 学期编号 学期
FK1
学年编号
课程PK 课程编号 课程名称FK1
专业编号
成绩PK 成绩编号FK2学号
FK1课程班编号 平时成绩
期末成绩
学生PK
学号 姓名 性别
出生日期 手机号码 电子邮箱FK1班级编号
籍贯
课程班PK 课程班编号 课程班名称 学时 学分
FK2教室编号FK1教师编号FK3课程编号
课程属性
教
PK 教师
教师 性别 职称 入职 教研 电话
电子
时间PK 时间编号 节 星期 周数
FK1
学期编号
教室
PK
教室编号
教室名称 负责人姓名 容纳人数 教学楼编号
教室类型
专业PK 专业编号 专业名称 专业人数FK1
学院编号
学院PK 学院编号 学院名称 院长姓名
学院联系方式FK1
校区编号
校区PK 校区编号 校区名称
校区地址
教学楼PK 教学楼编号 教学楼名称FK1
校区编号
第三章 插入数据
3.1 insert 语句插入数据
3.1.1 教师表插入数据
insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00001','钟绍春','188********@https://www.doczj.com/doc/c6602772.html,','男','教授','2002-09-01','188********','jy0001') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00002','王鹏','188********@https://www.doczj.com/doc/c6602772.html,','男','教授','2002-09-01','188********','jy0001') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00003','王文勇','188********@https://www.doczj.com/doc/c6602772.html,','男','教授','2002-09-01','188********','jy0001') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00004','付宏杰','188********@https://www.doczj.com/doc/c6602772.html,','女','教授','2002-09-01','188********','jy0001') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00005','房至一','188********@https://www.doczj.com/doc/c6602772.html,','男','教授','2002-09-01','188********','jy0001') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00006','郑晓娟','188********@https://www.doczj.com/doc/c6602772.html,','女','教授','2002-09-01','188********','jy0001') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00007','张绍伟','188********@qq.co m','男','教授','2002-09-01','188********','jy0002') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00008','孙业霞','188********@https://www.doczj.com/doc/c6602772.html,','女','教授','2002-09-01','188********','jy0003') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00009','刘志勇','188********@https://www.doczj.com/doc/c6602772.html,','男','教授','2002-09-01','188********','jy0001') insert into教师(教师编号,教师姓名,电子邮箱,性别,职称,入职时间,电话,教研室编号) values('t00010','张合','188********@https://www.doczj.com/doc/c6602772.html,','女','教授','2002-09-01','188********','jy0004')
select*from教师
3.1.2 教室表插入数据
insert into教室(教室编号,教室名称,负责人姓名,容纳人数,教学楼编号,教室类型)
values('js0001','软件','徐雷',300,'jxl001','阶梯教室')
insert into教室
values('js0002','计算机','徐电',300,'jxl001','阶梯教室')
insert into教室
values('js0003','综合教','徐风',200,'jxl002','阶梯教室')
insert into教室
values('js0004','综合教','徐雨',200,'jxl002','阶梯教室')
insert into教室
values('js0005','软件','徐雾',100,'jxl001','电脑机房')
insert into教室
values('js0006','政法教','徐霜',100,'jxl003','教室')
insert into教室
values('js0007','经济','徐雷',100,'jxl004','教室')
insert into教室
values('js0008','传媒','徐雪',200,'jxl005','教室')
错误原因是
修改教学楼编号类型
alter table教室
alter column教学楼编号nchar(6)not null
go
select*from教室
苏伟
3.1.3 课程表插入数据
insert into课程(课程编号,课程名称,专业编号)
values('c00001','SQLServer数据库设计','zy0001')
insert into课程
values('c00002','计算机组成原理','zy0001')
insert into课程
values('c00003','动态网页设计','zy0001')
insert into课程
values('c00004','汇编语言程序设计','zy0001')
insert into课程
values('c00005','篮球','zy0004')
insert into课程
values('c00006','编译原理','zy0001')
insert into课程
values('c00007','地理科学概论','zy0006')
select*from课程
3.1.4 课程班表插入数据
insert into课程班(课程班编号,课程班名称,学时,学分,教师编号,教室编号,课程编号,课程属性) values('kcb0001','SQLServe数据库设计课程班',34,2,'t00002','js0005','c00001','专业选修')
insert into课程班(课程班编号,课程班名称,学时,学分,教师编号,教室编号,课程编号,课程属性) values('kcb0002','计算机组成原理课程班',68,4,'t00005','js0001','c00002','专业必修')
insert into课程班(课程班编号,课程班名称,学时,学分,教师编号,教室编号,课程编号,课程属性) values('kcb0003','动态网页设计课程班',34,2,'t00009','js0005','c00003','专业选修')
insert into课程班(课程班编号,课程班名称,学时,学分,教师编号,教室编号,课程编号,课程属性) values('kcb0004','汇编语言程序设计课程班',34,2,'t00004','js0005','c00004','专业选修')
insert into课程班(课程班编号,课程班名称,学时,学分,教师编号,教室编号,课程编号,课程属性) values('kcb0005','篮球教学课程班',17,1,'t00007','js0001','c00005','必修')
insert into课程班(课程班编号,课程班名称,学时,学分,教师编号,教室编号,课程编号,课程属性) values('kcb0006','编译原理课程班',68,4,'t00006','js0001','c00006','专业必修')
insert into课程班(课程班编号,课程班名称,学时,学分,教师编号,教室编号,课程编号,课程属性) values('kcb0007','地理科学概论课程班',34,2,'t00010','js0001','c00007','通识选修')
select*from课程班
3.1.5学生表插入数据
insert into学生(学号,姓名,性别,出生日期,班级编号,手机号码,电子邮箱,籍贯)
values('2012012567','苏伟','男','1993-2-5','bj0001','188********','100662360@https://www.doczj.com/doc/c6602772.html,','江苏省宿迁市')
insert into学生(学号,姓名,性别,出生日期,班级编号,手机号码,电子邮箱,籍贯)
values('2012012901','赵一','男','1993-1-1','bj0001','188********','100000001@https://www.doczj.com/doc/c6602772.html,','江苏省南京市')
insert into学生(学号,姓名,性别,出生日期,班级编号,手机号码,电子邮箱,籍贯)
values('2012012902','赵二','男','1993-1-2','bj0001','188********','100000002@https://www.doczj.com/doc/c6602772.html,','江苏省无锡市')
insert into学生(学号,姓名,性别,出生日期,班级编号,手机号码,电子邮箱,籍贯)
values('2012012903','孙三','女','1993-2-5','bj0002','188********','100000003@https://www.doczj.com/doc/c6602772.html,','吉林省长春市')
insert into学生(学号,姓名,性别,出生日期,班级编号,手机号码,电子邮箱,籍贯)
values('2012012904','李四','女','1993-4-5','bj0002','188********','100000004@https://www.doczj.com/doc/c6602772.html,','浙江省杭州