SQLSERVER:高校信息管理系统M

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
ACCP V4.0
第二阶段标准代码演示-1
第二阶段的编码结果:
--8.查询学员成绩,显示学号,笔试成绩,机试成绩,平均分-select stuNO as 学号,writtenExam as 笔试,labExam as 机试, (writtenExam+labExam)/2.0 as 平均分 from stuMarks --9.排名次(按平均分从高到低排序),显示学号、平均分-select stuNO as 学号,(writtenExam+labExam)/2.0 as 平均分 from stuMarks order by 平均分 desc --10.排名次(按平均分从高到低排序),显示姓名,笔试成绩,机试成绩,平均分select stuName as 姓名,writtenExam as 笔试,labExam as 机试, (writtenExam+labExam)/2.0 as 平均分 from stuInfo inner join stuMarks on stuInfo.stuNo=stuMarks.stuNo order by 平均分 desc --11.根据平均分,显示前两名信息,包括姓名、笔试成绩、机试成绩、平均分select top 2 stuName as 姓名,writtenExam as 笔试, labExam as 机试,(writtenExam+labExam)/2.0 as 平均分 from stuInfo inner join stuMarks on stuInfo.stuNo=stuMarks.stuNo order by 平均分 desc
2
ACCP V4.0
问题分析-1
与考试相关的学生信息表(stuInfo)如下:
字段名称 stuName stuNo stuSex stuAge stuSeat stuAddress 数据类型 字符 字符 字符 数字 数字 文本 说明 学生姓名,该列必填,要考虑姓氏可能是两个字的, 如欧阳俊雄 学号,该列必填,学号不能重复,且必须是 S253XX格式 学生性别,该列必填,且只能是“男”或“女”。 因为男生较多,默认为“男” 学生年龄,该列必填,必须在15~50岁之间 学生的座位号,该列必填,不用人工输入,采用自 动编号方式,且必须是1~30号 学生地址,该列可不填,如没有填写,默认为“地 址不详”
ACCP V4.0
3
问题分析-2
与成绩相关的学生成绩表(stuMarks)如下:
字段名称 examNo stuNo writtenExam labExam 数据类型 字符 字符 数字 数字 说明 考号,该列必填,且不能重复,必须是 E200507XXXX格式 学号,该列必填,且必须在学生基本信息表 中有相关记录 学生笔试成绩,数据必须是0~100分之间, 不填默认为0分 学生笔试成绩,数据必须是0~100之间,不 填默认为0分
21
ACCP V4.0
第三阶段标准代码演示-1
第三阶段的编码结果:
创建登录帐号
22
ACCP V4.0
第三阶段标准代码演示-2
第三阶段的编码结果:
创建数据库用户
权 限
23
ACCP V4.0
总结
通过本次项目案例练习了
利用企业管理器进行常用的数据库操作 编写SQL语句执行增、删、改、查操作
巩固的知识点
高校信息管理系统 数据库设计
源自文库
ACCP V4.0
问题描述
北京某高校拟开发一套高校信息管理系统,该系统包括 学生档案管理、学生成绩管理、教员信息管理、教务排课等 模块,实现学生档案录入、修改、查询,成绩录入、修改、 查询,教务排课管理等功能。 开发此模块涉及两大部分:
后台数据库的设计 前端界面的开发(后期我们可以用Java开发) 为了简化起见,我们暂讨论“学生成绩管理”子模块,该模块具有成绩 输入,成绩查询,名次排序,分数统计等功能。 现要求对“学生成绩管理”子模块进行数据库的设计并实现,数据库保 存在D:\project目录下,文件增长率为15% 。
24
ACCP V4.0
第一阶段结果演示-2
第一阶段操作的结果:
11
ACCP V4.0
第一阶段结果演示-3
第一阶段操作的结果:
12
ACCP V4.0
第二阶段
第二阶段(50分钟):利用SQL查询分析器实现
插入测试数据; 查询数据; 修改数据;
要求学员自己动手编写SQL语句,教员巡视,解 答学员提出的问题
13
ACCP V4.0
18
ACCP V4.0
第二阶段标准代码演示-1
修改数据
--都提5分-update stuMarks set writtenExam=writtenExam+5 select * from stuMarks --100分封顶(加分后超过100分的,按100分计算)-update stuMarks set writtenExam=100 where writtenExam>100 --查看修改后的数据-select * from stuMarks
19
ACCP V4.0
第三阶段
第三阶段(50分钟):利用企业管理器实现
创建登录帐号; 导出数据; 导出脚本; 分离数据库;
要求学员自己动手操作,教员巡视,解答学员提 出的问题
20
ACCP V4.0
阶段检查
针对第三阶段抽查学员的编码结果 抽查学员编写的完整代码,要求学员上台讲解, 并演示运行结果 教员给出点评
INSERT INTO stuMarks(ExamNo,stuNo,writtenExam) VALUES('E2005070002','s25302',50) INSERT INTO stuMarks(ExamNo,stuNo,writtenExam,LabExam) VALUES('E2005070003','s25303',97,82) --查看数据-select * from stuInfo select * from stuMarks
6
ACCP V4.0
阶段划分
第一阶段(50分钟):利用企业管理器实现建库、 建表、加约束、建关系 第二阶段(50分钟):利用SQL查询分析器实现 插入测试数据、查询数据、 修改数据 第三阶段(50分钟):利用企业管理器实现创建 登录帐号、导出数据、导 出脚本、分离数据库
7
ACCP V4.0
第一阶段
16
ACCP V4.0
第二阶段标准代码演示-1
查询数据
--1.查询两表的数据-select * from stuInfo select * from stuMarks --2.查询男学员名单-select * from stuInfo where stuSex='男' --3.查询笔试成绩优秀的学员情况(成绩在75~100之间)-select stuNo ,writtenExam from stuMarks where writtenExam between 75 and 100 --4.查询参加本次考试的学员成绩,包括学员姓名,笔试成绩,机试成绩-select stuName,writtenExam,labExam from stuInfo inner join stuMarks on stuInfo.stuNo=stuMarks.stuNo --5.统计笔试考试平均分和机试考试平均分-select avg(writtenExam) as '笔试考平均分', avg(labexam) as '机试平均分' from stuMarks --6.统计参加本次考试的学员人数 select count(stuNo) as 考试人数 from stuMarks --7.查询没有通过考试的人数(笔试或机试小于60分)-select count(stuNo) as 未通过的人数 from stuMarks where labExam<60 or writtenExam<60
15
ACCP V4.0
第二阶段标准代码演示-2
第二阶段的编码结果:
--向学员成绩表stuMarks插入数据-INSERT INTO stuMarks(ExamNo,stuNo,writtenExam,LabExam) VALUES('E2005070001','s25301',80,58)
插入数据
学生的座位号,该列必填,不用人工输入,采用 标识列 自动编号方式,且必须是1~30号 学生地址,该列可不填,如没有填写,默认为“地 址不详”
5
ACCP V4.0
难点分析-2
分析学生成绩表(stuMarks)每列的约束:
字段名称 examNo stuNo writtenExam labExam 数据类型 字符 字符 数字 数字 说明 考号,该列必填,且不能重复,必须是 E200507XXXX格式 学号,该列必填,且必须在学生基本信息表 中有相关记录 Check约束 约束:writtenExam between 0 and 100 约束 学生笔试成绩,数据必须是0~100分之间, 不填默认为0分 学生笔试成绩,数据必须是0~100之间,不 填默认为0分
阶段检查
针对第二阶段抽查学员的编码结果 教员给出点评或集中演示难点部分
14
ACCP V4.0
第二阶段标准代码演示-1
插入数据
--向学员信息表stuInfo插入数据-INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) VALUES('张秋丽','s25301','男',18,'北京海淀') INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) VALUES('李斯文','s25303','女',22,'河南洛阳') INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge) VALUES('李文才','s25302','男',31) INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge,stuAddress) VALUES('欧阳俊雄','s25304','男',28,'新疆威武哈')
第一阶段(50分钟): 利用企业管理器实现
建库; 建表; 加约束; 建关系 ;
要求学员自己动手操作,教员巡视,解答学员提 出的问题
8
ACCP V4.0
阶段检查
针对第一阶段抽查学员的操作结果 教员给出点评或集中演示难点部分
9
ACCP V4.0
第一阶段结果演示1
第一阶段操作的结果:
10
ACCP V4.0
4
ACCP V4.0
难点分析-1
分析学生信息表(stuInfo)每列的约束
字段名称 stuName stuNo stuSex stuAge stuSeat stuAddress 数据类型 字符 字符 字符 数字 数字 文本 说明
非空/必填约束 非空 必填约束
学生姓名,该列必填,要考虑姓氏可能是两个字的, 主键约束 如欧阳俊雄 学号,该列必填,学号不能重复,且必须是s253XX 格式 Check约束 约束:stuNo like ‘s253[0-9][0-9]’ 约束 学生性别,该列必填,且只能是“男”或“女”。 因为男生较多,默认为“男” 默认约束 学生年龄,该列必填,必须在15~50岁之间
数据库的常用操作:建库、建表、加约束、建关系 常用的约束类型:主键、外键、非空、默认值、检查约束 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 jonin 表2 …
相关文档
最新文档