学生信息管理体系数据库计划(sql server)

打印 上一主题 下一主题

主题 632|帖子 632|积分 1896

项目名称

学生信息管理体系数据库
项目概述

本项目旨在开发一个综合性的学生信息管理体系数据库,该体系将为教育机构提供一个会合的平台,用于存储、管理和分析学生数据。体系将支持学生注册、成绩跟踪、课程安排、教师和家长沟通等功能。
技术栈



  • 数据库管理体系:SQL Server 2008R
  • 开发工具:SQL Server Management Studio (SSMS), Visual Studio
  • 编程语言:T-SQL
数据库计划

数据库计划包罗以下关键实体和关系:


  • 学生个人信息表:包含学生的个人信息、联系方式和注册信息。
  • 课程表:存储课程的具体信息,如课程编号、名称、描述等。
  • 成绩表:记载学生在各个课程中的成绩。
  • 班级表:记载学生·的班级
  • 专业表:记载学生·的专业
  • 学院表:存储学校不同部门的信息。
  • 视图:提供学生、教师和课程的综合视图。
  • 存储过程:实现数据的增编削查操作。
功能特点



  • 课程和教师信息管理
  • 成绩录入和查询
  • 学生选课和课程安排
  • 陈诉天生:提供学天生绩陈诉、课程统计等
一.班级表


二.课程表


三.学院表



四.成绩表



五.专业表


六.学生个人信息表


七.数据库代码

1.创建表和插入数据

  1. use StuMange --使用数据库
  2. -- 院系表
  3. create table Department(
  4.    did varchar(30) primary key not null, -- 院系编号主键
  5.    dname varchar(30) not null
  6. );
  7. -- 专业表
  8. create table Major(
  9.    mid varchar(30) primary key not null, -- 专业编号主键
  10.    did varchar(30) not null,
  11.    mname varchar(30) not null,
  12.    foreign key (did) references Department (did) -- 外键
  13. );
  14. -- 班级表
  15. create table Class(
  16.    cid varchar(30) primary key not null, -- 班号为主键
  17.    mid varchar(30) not null,
  18.    did varchar(30) not null,
  19.    cname varchar(30) not null,
  20.    cnumber int not null,
  21.    foreign key (did) references Department (did),
  22.    foreign key (mid) references Major (mid)
  23. );
  24. -- 学生表
  25. create table stu(
  26.    id varchar(30) primary key not null, -- 学号主键
  27.    name varchar(30) not null, -- 姓名
  28.    sex char(2) not null check(sex in('男','女')), -- 性别
  29.    cid varchar(30) not null,
  30.    mid varchar(30) not null,
  31.    did varchar(30) not null,
  32.    nation varchar(20) not null, -- 民族
  33.    age int not null, -- 年龄
  34.    birthday date not null, -- 生日
  35.    location varchar(20) not null, -- 地址
  36.    foreign key (cid) references Class (cid),
  37.    foreign key (mid) references Major (mid),
  38.    foreign key (did) references Department (did)
  39. );
  40. -- 课程表
  41. create table Course(
  42.    kid varchar(30) primary key not null, -- 课程编号主键
  43.    kname varchar(30) not null, -- 课程名称
  44.    kcredit int not null, -- 课程学分
  45.    kperiod int not null, -- 课程时间
  46. );
  47. -- 课程成绩表
  48. create table Grade(
  49.    kid varchar(30) not null,
  50.    id varchar(30) not null,
  51.    ggrade int not null, -- 课程成绩
  52.    primary key(kid, id), -- 课程编号为主键
  53.    foreign key (kid) references Course (kid),
  54.    foreign key (id) references stu (id)
  55. );
  56. select * from Department
  57. insert into Department values('RJ111','软件学院')
  58. insert into Department values('XC222','新闻与传播学院')
  59. insert into Department values('JSJY333','教师教育学院')
  60. insert into Department values('Y444','医学院')
  61. insert into Department values('ST555','数学与统计学院')
  62. insert into Department values('WGY666','外国语学院')
  63. insert into Department values('DQ777','电气与机械工程学院')
  64. select * from Major
  65. insert into Major values('RJ11','RJ111','软件工程')
  66. insert into Major values('JSJ22','RJ111','计算机科学与技术')
  67. insert into Major values('GG11','XC222','广告学')
  68. insert into Major values('XW22','XC222','新闻学')
  69. insert into Major values('XQ11','JSJY333','学前教育')
  70. insert into Major values('XX22','JSJY333','小学教育')
  71. insert into Major values('LC11','Y444','临床医学')
  72. insert into Major values('JP22','Y444','解剖学')
  73. insert into Major values('JR11','ST555','金融工程')
  74. insert into Major values('YT22','ST555','应用统计学')
  75. select * from Class
  76. insert into Class values('RG1','RJ11','RJ111','软工一班',6)
  77. insert into Class values('JK1','JSJ22','RJ111','计科一班',6)
  78. insert into Class values('GG1','GG11','XC222','广告一班',5)
  79. insert into Class values('XW1','XW22','XC222','新闻一班',7)
  80. insert into Class values('CJ1','XQ11','JSJY333','初教一班',6)
  81. insert into Class values('XJ1','XX22','JSJY333','小教一班',5)
  82. insert into Class values('LC1','LC11','Y444','临床一班',6)
  83. insert into Class values('JP1','JP22','Y444','解剖一班',6)
  84. insert into Class values('JR1','JR11','ST555','金融一班',5)
  85. insert into Class values('YT1','YT22','ST555','应统一班',5)
  86. select * from stu
  87. insert into stu values('202300406084','王昭君','女','RG1','RJ11','RJ111','汉族',20,'2004-06-12','广西百色')
  88. insert into stu values('202300406085','刘备','男','RG1','RJ11','RJ111','汉族',21,'2003-02-22','广西梧州')
  89. insert into stu values('202300406086','关羽','男','RG1','RJ11','RJ111','回族',19,'2005-03-14','广西钦州')
  90. insert into stu values('202300406087','杨玉环','女','RG1','RJ11','RJ111','汉族',20,'2004-01-09','广西北海')
  91. insert into stu values('202300406088','曹操','女','RG1','RJ11','RJ111','汉族',20,'2004-02-03','广西梧州')
  92. insert into stu values('202300406089','孙权','男','RG1','RJ11','RJ111','汉族',19,'2005-04-03','云南大理')
  93. insert into stu values('202300406090','李清照','女','JK1','JSJ22','RJ111','汉族',20,'2004-02-11','云南昆明')
  94. insert into stu values('202300406091','貂蝉','女','JK1','JSJ22','RJ111','汉族',20,'2004-02-02','云南丽江')
  95. insert into stu values('202300406092','李白','男','JK1','JSJ22','RJ111','回族',19,'2005-04-01','浙江绍兴')
  96. insert into stu values('202300406093','杜甫','男','GG1','GG11','XC222','汉族',20,'2004-01-10','四川成都')
  97. insert into stu values('202300406094','朱元璋','男','GG1','GG11','XC222','汉族',21,'2003-02-22','河南郑州')
  98. select * from Course
  99. insert into Course values('YY1','大学英语',4,72)
  100. insert into Course values('GS2','高等数学',4,120)
  101. insert into Course values('SJK3','数据库',4,72)
  102. insert into Course values('SJ4','数据结构',4,72)
  103. insert into Course values('LC5','Linux操作系统',3,68)
  104. select * from Grade
  105. insert into Grade values('YY1','202300406084',99)
  106. insert into Grade values('LC5','202300406085',96)
  107. insert into Grade values('GS2','202300406086',94)
  108. insert into Grade values('SJK3','202300406087',100)
  109. insert into Grade values('SJ4','202300406088',99)
  110. insert into Grade values('YY1','202300406089',99)
  111. insert into Grade values('LC5','202300406090',96)
  112. insert into Grade values('GS2','202300406091',94)
  113. insert into Grade values('SJK3','202300406092',79)
  114. insert into Grade values('SJ4','202300406093',99)
  115. insert into Grade values('SJ4','202300406094',89)
复制代码
2.对数据的编削查以及视图的建立

  1. use StudentOD
  2. -----------------------------查询操作
  3. --查询年龄小于20的学生的基本信息
  4. select * from stu where age < 21
  5. --查询选修了“SJK3”课程的学生的学号、姓名、成绩,其中按照成绩从大到小的顺序排列
  6. select Stu.id,name,Ggrade from Stu,Grade
  7. where Stu.id = Grade.id and Grade.Kid = 'SJK3'
  8. order by Ggrade desc
  9. --查询选修“大学英语”课程所有学生的平均成绩
  10. select avg(Ggrade) 平均成绩 from Grade,Course
  11. where Grade.Kid = Course.Kid
  12. and Course.Kname = '大学英语'
  13. -----------------------------更改操作
  14. --将课程“高数"的课程时间更改为130
  15. select * from Course where Kname = '高等数学'
  16. update Course set Kperiod = 130 where Kname = '高等数学'
  17. --将家庭地址为“云南昆明”的学生的家庭地址更改为“云南怒江”
  18. select * from stu where location = '云南昆明'
  19. select * from stu where location = '云南怒江'
  20. update stu set location = '云南昆明' where location = '云南怒江'
  21. ---------------------------------删除操作
  22. --删除学号为“202300406084”学生信息
  23. select * from stu
  24. delete from stu where id = '202300406084'
  25. ----------------------------------创建视图
  26. --创建学生成绩视图,实现查询各个学生的学号、姓名、课程、成绩
  27. create view B_Grade as
  28. select
  29.     stu.id as id,
  30.     stu.name as name,
  31.     Course.Kname as Kname,
  32.     Grade.Ggrade as Ggrade
  33. from
  34.     stu
  35. join
  36.     Grade on stu.id = Grade.id
  37. join
  38.    
  39.     Course on Grade.Kid = Course.Kid;
  40.    
  41.    
  42.     -----------------------创建触发器
  43.     --当增加学生班级信息时自动修改相应班级学生人数
  44. create trigger insert_stu
  45. on stu for insert
  46. as
  47. begin
  48.   declare @cid varchar(30)
  49.   select @cid=Cid from inserted
  50.   update Class set Cnumber = Cnumber + 1 where Cid = @cid
  51. end
  52. select * from Class where Cname = '软件233'
  53. insert into stu values('202300406084','王阳明','男','RG1','RJ11','RJ111','汉族',20,'2004-02-03','广西贵港')
  54. select * from Class where Cname = '软件233'
  55. --创建触发器,当删除学生班级信息时自动修改相应班级学生人数
  56. create trigger delete_stu
  57. on stu for delete
  58. as
  59. begin
  60.   declare @cid varchar(30)
  61.   select @cid=Cid from deleted
  62.   update Class set Cnumber = Cnumber - 1 where Cid = @cid
  63. end
  64. select * from Class where Cname = '软件233'
  65. delete from stu where name = '王阳明'
  66. select * from Class where Cname = '软件233'
  67. --创建触发器,当修改学生班级信息时自动修改相应班级学生人数
  68. create trigger update_stu
  69. on stu for update
  70. as
  71. begin
  72.   declare @cid1 varchar(30)
  73.   declare @cid2 varchar(30)
  74.   --存放更新前的数据
  75.   select @cid1=Cid from deleted
  76.   --存放更新后的数据
  77.   select @cid2=Cid from inserted
  78.   update Class set Cnumber = Cnumber - 1 where Cid = @cid1
  79.   update Class set Cnumber = Cnumber + 1 where Cid = @cid2
  80. end
  81.   select * from stu where name = '李白'
  82.   select * from Class where Cname = '软件233'
  83.   select * from Class where Cname = '英语一班'
  84.   update stu set Cid = 'YY1' where name = '李白'
  85.   
复制代码
3.数据库关系图




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

何小豆儿在此

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表