目录

  • 问题描述:
  • 一、后台数据库的设计
    • 1)设计数据库
    • 2)插入数据
    • 3)查询数据
    • 4)修改数据
    • 5)管理数据
      • 1.导出数据到各种异构数据源、导出脚本
      • 2.附加和分离数据库
  • 二、前端界面的开发(后期我们可以用dNet开发)
  • 总结

问题描述:

上海某高校拟开发一套高校信息管理系统,该系统包括学生档案管理、学生成绩管理、教员信息管理、教务排课等模块,实现学生档案录入、修改、查询,成绩录入、修改、查询,教务排课管理等功能。
       开发此模块涉及两大部分:后台数据库的设计、前端界面的开发

一、后台数据库的设计

为了简化起见,我们暂讨论“学生成绩管理”子模块,该模块具有成绩输入,成绩查询,名次排序,分数统计等功能。
        现要求对“学生成绩管理”子模块进行数据库的设计并实现,数据库保存在:E\MyApp目录下,文件增长率为10% 。

1)设计数据库

use master
if exists(select * from sysdatabases where name='student_manage')  --判断student_manage库是否存在,若存在则先删除drop database student_managecreate database student_manage                    --创建数据库student_manage
on primary
(
name='student_manage',
filename='E\MyApp\student_manage.mdf',
size=3,
filegrowth=10%
)
log on
(
name='student_manage_log',
filename='E\MyApp\student_manage.ldf',
size=2,
filegrowth=10%
)--创建学生信息表
use student_manage
create table stuInfo(stuName varchar(10) not null,
stuNo varchar(20) not null,
stuSex varchar(5) not null,
stuAge int not null,
stuSeat int not null,
stuAddress text null
)--创建学生成绩表
create table stuMarks(examNo varchar(15) not null,
stuNo varchar(20) not null,
writtenExam int null,
labExam int null
)
--创建约束
alter table stuInfo add constraint pk_stuName primary key(stuName)
alter table stuInfo add constraint ck_stuNo check (stuNo like 's253[0-9][0-9]')
alter table stuInfo add constraint ck_stuSex check (stuSex in ('男','女'))
alter table stuInfo add constraint df_stuSex default '男' for stuSex
alter table stuInfo add constraint ck_stuAge check (stuAge between 15 and 50)
alter table stuInfo add constraint ck_stuSeat check (stuSeat between 0 and 30)
alter table stuInfo add constraint df_stuAddress default '地址不详' for stuAddressalter table stuMarks add constraint uq_examNo unique (examNo)
alter table stuMarks add constraint ck_examNo check (examNo like 'E200507[0-9][0-9][0-9][0-9]')
alter table stuMarks add constraint df_writtenExam default 0 for writtenExam
alter table stuMarks add constraint ck_writtenExam check (writtenExam between 0 and 100)
alter table stuMarks add constraint df_labExam default 0 for labExam
alter table stuMarks add constraint ck_labExam check (labExam between 0 and 100)

2)插入数据

insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)
values('张秋丽','s25301','男',18,2,'北京海淀')
insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat)
values('李文才','s25302','男',31,5)
insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)
values('李斯文','s25303','女',22,3,'河南洛阳')
insert into stuInfo(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)
values('欧阳俊雄','s25304','男',28,7,'新疆克拉玛依')insert into stuMarks(examNo,stuNo,writtenExam,labExam)
values('E2005070001','s25301',80,58)
insert into stuMarks(examNo,stuNo,writtenExam)
values('E2005070002','s25302',50)
insert into stuMarks(examNo,stuNo,writtenExam,labExam)
values('E2005070003','s25303',97,82)

3)查询数据

1.查询两表的数据

select*from stuInfo
select*from stuMarks

2.查询男学员名单

select *from stuInfo where stuSex='男'

3.查询笔试成绩优秀的学员情况(成绩在75~100之间)

Select stuName,stuInfo.stuNo,stuSex,stuAge,stuSeat,stuAddress,examNo,writtenExam,labExam
from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo
where writtenExam between 75 and 100

4.查询参加本次考试的学员成绩,包括学员姓名,笔试成绩,机试成绩

select stuName,writtenExam,labExam
from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo

5.统计笔试考试平均分和机试考试平均分

select avg(writtenExam)as '笔试平均分',avg(labExam)as'机试平均分' from stuMarks

6.统计参加本次考试的学员人数

select count(examNo)as'参加考试人数' from stuMarks

7.查询没有通过考试的人数(笔试或机试小于60分)

select count(examNo)as'未通过考试人数' from stuMarks where writtenExam<60 or labExam<60

8.查询学员成绩,显示学号,笔试成绩,机试成绩,平均分

select stuNo,writtenExam,labExam,(writtenExam+labExam)/2as avgExam
from stuMarks

9.排名次(按平均分从高到低排序),显示学号、平均分

select stuNo,(writtenExam+labExam)/2as avgExam
from stuMarks
order by avgExam desc

10.排名次(按平均分从高到低排序),显示姓名,笔试成绩,机试成绩,平均分

select stuName,writtenExam,labExam,(writtenExam+labExam)/2as avgExam
from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo
order by avgExam desc

11.根据平均分,显示前两名信息,包括姓名、笔试成绩、机试成绩、平均分

select top 2 stuName,writtenExam,labExam,(writtenExam+labExam)/2as avgExam
from stuInfo join stuMarks on stuInfo.stuNo=stuMarks.stuNo
order by avgExam desc

4)修改数据

笔试成绩都提5分

update stuMarks set writtenExam=writtenExam+5 select *
from stuMarks

100分封顶(加分后超过100分的,按100分计算)

update stuMarks set writtenExam=100 where writtenExam>100

查看修改后的数据

select * from stuMarks

5)管理数据

1.导出数据到各种异构数据源、导出脚本

1.1 在SQL Server数据库之间进行数据导入导出

可以使用select into语句导出数据:
        在SQL Server中使用最广泛的就是通过select into语句导出数据,select into语句同时具备两个功能:
       ①根据select后跟的字段以及into后面跟的表名建立空表(如果select后是*, 空表的结构和from所指的表的结构相同);
        ②将select查出的数据插入到这个空表中。在使用select into语句时,into后跟的表必须在数据库不存在,否则出错。

还可以使用insert into 和 update插入和更新数据

1.2 使用opendatasource和openrowset在不同类型的数据库之间导入导出数据
       在异构的数据库之间进行数据传输,可以使用SQL Server提供的两个系统函数opendatasource和openrowset,其中opendatasource可以打开任何支持OLE DB的数据库,并且可以将opendatasource做为select、updte、insert和delete后所跟的表名。

2.附加和分离数据库

附加数据库:
选中数据库,然后鼠标右击,选择【附加】

然后点【添加】,找到数据库保存的路径,然后确定即可

分离数据库:
选中要分离的数据库,鼠标右击

【任务】—【分离】

勾选要分离的数据库,再确定即可

二、前端界面的开发(后期我们可以用dNet开发)

略~~~

总结

通过本次项目案例练习了:
       在SQL Server Management Studio中进行常用的数据库操作
       编写SQL语句执行增、删、改、查操作
巩固的知识:
       数据库的常用操作:建库、建表、加约束、建关系
       常用的约束类型:主键、外键、非空、默认值、检查约束
       insert 语句: Insert into 表名(字段1,字段2,…) values (值1, 值2,…)
       update语句: Update 表名 set 字段=值 where …
       条件查询:select …from 表名 where …
       排序:select …from 表名 order by …
       Top语句: select top 2….from 表名…
       统计函数:select avg( …) as 平均分 ….
       选择查询: select ….where labExam between 70 and 90
       内部连接:select …from 表1 inner jion 表2 …

阶段项目:学生信息管理系统数据库设计相关推荐

  1. [Python+Django]Web学生信息管理系统数据库设计及系统实现

    本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能. 简单的包装下毕设应该没问题了. Python,Mysql,Pycharm的安装本文 ...

  2. oracle学生信息管理系统课程设计,数据库课程设计-学生信息管理系统的设计与实现.doc...

    数据库课程设计-学生信息管理系统的设计与实现 2011-2012课程设计II 学生信息管理系统的设计与实现 一 设计内容 建立一个简单的在校学生信息查询系统,可以让使用者查询到学生的一些简单的个人信息 ...

  3. 复习Java第一个项目学生信息管理系统 04(权限管理和动态挂菜单功能) python简单爬数据实例Java面试题三次握手和四次挥手生活【记录一个咸鱼大学生三个月的奋进生活】016

    记录一个咸鱼大学生三个月的奋进生活016 复习Java(学生信息管理系统04权限管理和动态挂菜单功能) 改写MainFrame的构造方法 新增LoginFrame的验证登录是否成功的代码 新增Logi ...

  4. 用Mysql做个人信息管理系统_个人信息管理系统数据库设计精选.doc

    个人信息管理系统数据库设计精选 河海大学计算机及信息工程学院(常州) 数据库课程设计 学年学期 2012第二学期 项目名称 个人信息管理 项目组员 曹清云.陈天昊 指导教师 景雪琴 组号:8 目 录 ...

  5. mysql学生管理系统毕业设计_学生信息管理系统的设计与实现(MyEclipse,MySQL)

    学生信息管理系统的设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,毕业论文15000字,程序代码,MySQL数据库) 学生信息管理系统的开发工具是MyEclips ...

  6. 学生信息管理系统的设计与实现 计算机毕设源码70168

    摘要 从20年代开始,计算机疯狂的出现在人们的生活以及工作当中,成为人们生活.工作的好帮手,计算机深入到每家每户当中,网络办公,网络教学更是替换了传统手工记录管理的方式,使用计算机办公可以不必局限于固 ...

  7. netbeans基于mysql学生信息_学生信息管理系统的设计与实现(NetBeans IDE,MySQL)

    学生信息管理系统的设计与实现(NetBeans IDE,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文16000字,程序代码,MySQL数据库) 本系统是在管理信息系统的理论 ...

  8. 西电数据库实验-学生学籍管理系统 数据库设计

    西电数据库实验-学生学籍管理系统 数据库设计 文章目录 西电数据库实验-学生学籍管理系统 数据库设计 需求分析 实体集 联系集 概念结构设计 逻辑结构设计 实体集 department(id‾,nam ...

  9. SSM入门小项目----学生信息管理系统

    SSM入门小项目----学生信息管理系统 学习了SSM后,自己想动手写个小项目,巩固一下.选择了比较简单的学生信息管理系统,项目比较简单,包括的功能有:登录.学生信息的增删改查.分页(前端实现). 本 ...

最新文章

  1. WebChat 清爽来袭 -- JavaChat系统Ⅳ
  2. plsql command window 执行批量脚本
  3. 激励员工的首席执行官以及他们的秘诀
  4. Ubuntu 12.04 x64 下安装 GStreamer+FFmpeg+Opencv
  5. 单纯形法求解函数极值问题 matlab代码
  6. 为什么用共有属性来封装私有变量
  7. Go语言web开发学习
  8. 幼儿园门口摆个考勤机 家长接孩子得打卡
  9. Java拿到前一天的零点零分
  10. thinkphp 批量打包下载图片到本地电脑
  11. php话费充值接口对接,基于PHP的聚合数据手机话费充值API调用代码示例
  12. 使用JS判定PC浏览器和IE浏览器
  13. 西门子博图PLC程序无法下载到PLCSIM
  14. 提供一个免费的directui界面库(已开源)
  15. HTML我的家乡宁夏学生网页设计作品 dreamweaver作业静态HTML网页设计模板 宁夏旅游景点网页作业制作...
  16. NC81 二叉搜索树的第k个结点
  17. python未读邮件_请问如何用python将某个邮箱未读邮件全部转发到另一个邮箱?
  18. 黑马程序员--某天学习笔记
  19. 利用Python开发App
  20. SqlNullValueException: Data is Null. This method or property cannot be called on Null values.

热门文章

  1. 360浏览器设置多标签操作步骤
  2. java生日正则表达式_Java编程基础15——正则表达式常用工具类
  3. php递归删除文件,PHP 递归删除文件夹
  4. Java 序列化总结.md
  5. 如何在android进行ltp测试,Android系统完整性度量架构IMA-EVM
  6. php 发送post请求json,thinkphp ,php post发送json请求,就收post请求
  7. java实时更新权限_java – 如何使用Spring Security重新加载用户更新的权限
  8. javamail发送html正文文件_Python实现-生成测试报告amp;自动邮件发送
  9. java 新建 api 案列_Java利用webservice创建接口案例源码
  10. Spring Boot————AOP入门案例及切面优先级设置