




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库实习报告书实习名称: 系 (部): 信息管理系 专业班级: 电子商务本1班 学生姓名: 谭玉成 学 号: 110512113 指导教师: 周恩峰等 完成日期: 2013.12.19 山东财经大学东方学院16 / 18文档可自由编辑打印实习课题数据库概论实习人姓名谭玉成同组人员实习日期2013年12月13至2013年12月20号实习成绩指导教师评语指导教师签名:_年 _ 月_日一学生成绩管理系统序言:学生成绩管理系统是学校管理的重要工具,是学校不可或缺的部分,随着在校大学生人数的不断增加,教务系统的数量也不断上涨,学校工作繁杂资料众多,人工管理信息的难度也越来越大,显然不能满足实际的需要,
2、效率也是很低的,很难维护和更新。学生成绩管理系统的建立极大地提高了管理的效率,而且更加方便实用,数据需求分析:1、功能要求1) 学生查询功能:为了方便学生查找成绩等信息,将所有信息按照需要进行分 类。这样学生就能很方便的找到自己所需要的信息。 2) 老师查询功能:老师可以通过条件选择查询所有信息,并进行排序。 3) 添加功能:老师可以通过填写表格的形式输入学生成绩等相关信息。系统 可以自动避免重复信息。 4) 修改功能:老师可以对数据库中的信息进行修改。系统能够通过老师给出的 条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复 信息。 5) 删除功能:老师可以对数据进行删除
3、操作。系统能够通过老师给出的条件查 找出要删除的信息,并提示是否确定删除,如果确定删除,则把相关信息从数据 库中删除。2、系统存储方案考虑到用户实际情况和存储的数据类型,因此采用数据库 sql server 来存储 整个系统应保存的数据。3、性能要求(1)保证查询时的查全率和查准率。 (2)保证添加数据时的完整性。4、数据流图分析 二数据库概念结构设计实体与实体之间的主要关系E-R图:11学生成绩选课课程教授教师nmmn得到三数据库逻辑结构设计数据库关系模式中对每个实体定义的属性如下 学生表学生信息表字段名数据类型长度说明学号char9不空,主键姓名char18不空性别char10不空出生日期
4、datetime不空院系名称char8不空入学时间datetime不空出生地char10不空政治面貌char10不空备注text空 教师表教师信息表字段名数据类型长度说明描述教师编号char10不空,主键教师编号姓名char8不空姓名性别char7不空性别出生日期datetime不空出生日期院系名称char20不空院系名称学历char8不空学历职称char10不空职称备注text不空备注 课程表课程表字段名数据类型长度说明课程号char8不空,主键课程名char10不空学分int不空备注text不空 成绩表成绩表字段名数据类型长度说明学号char10不空,主键教师编号char6不空,主键课程号
5、char20不空,主键分数decimal6,1不空 5、物理结构设计 数据库建立create database 学生成绩管理 on (name=学生成绩管理_dat, ='D:学生成绩管理学生成绩管理_dat.mdf') log on (name=学生成绩管理_log, ='D:学生成绩管理学生成绩管理_log.ldf')go成绩表建立create table 成绩表(学号 char (10) not null,教师编号 char (6) not NULL,课程号 char (20) not NULL,分数 decimal(6,1) not NULL,prima
6、ry key (学号,教师编号,课程号),foreign key (教师编号) references 教师表(教师编号),foreign key (课程号) references 课程表(课程号),foreign key (学号) references 学生表(学号)go教师表建立Create table 教师表(教师编号 char(10)primary key NOT NULL,姓名 char(8) NOT NULL,性别 char(7) check (性别 in('男', '女') )not null,出生日期 datetime not NULL,院系名称
7、char (20) not NULL,学历 char(8)not NULL,职称 char(10)not NULL,备注 text not NULL)go课程表建立CREATE TABLE 课程表(课程号 char(8) primary key NOT NULL,课程名 char(10) NOT NULL,学分 int NOT NULL,备注 text not NULL)Go学生表建立CREATE TABLE 学生表(学号 char(10) primary key NOT NULL,姓名 char(20) NOT NULL,性别 char(20) check (性别in('男'
8、, '女') )not null,院系名称 char(10)not NULL,出生日期 datetime not NULL,入学时间 datetime not NULL,出生地 char(8) not NULL,政治面貌 char(10) not NULL,备注 text NULL)go6、数据库的实施和维护1)查询女教师的教师编号、姓名和出生日期。 select 教师编号,姓名,出生日期 from 教师表 where 性别='女' go2)根据教师的年龄,将教师分为:老年(大于等于50岁)、中年(40岁至50岁之间)和青年(小于等于40岁)。 select 教
9、师编号,姓名,年龄=casewhen(2012-year(出生日期)between 40and 50then '中年'when(2012-year(出生日期)<=40 then '青年'else '老年'endfrom 教师表go3)查询选修“大学英语”的学生的姓名,并按照分数从高到低输出前3名。 select top 3 姓名 from 成绩表,学生表,课程表 where 成绩表.学号=学生表.学号and 课程表.课程号=成绩表.课程号and 课程名='大学英语' order by 分数desc; go4)查询体育学院和外
10、语学院,而且在1986年出生的学生信息。 select * from 学生表 where 院系名称='体育学院' or 院系名称='外语学院' and year(出生日期)=1986; go5)查询计算机学院姓张,并且姓名是两个字的学生的信息。 select * from 学生表 where 院系名称='计算机学院' and len(姓名)=2 and 姓名like '张%' go6)查询所有学生的分数信息,如果分数大于等于80,则为“优秀”;大于等于60,则为“及格”;小于60,则为“不及格”。使用CASE函数给每个学生的分数设
11、定等级。 select 学号,课程号,分数,等级=case when 分数>=80 then '优秀' when 分数>=60 then '及格' else '不及格' end from 成绩表 go7)统计选修了5号课程的学生的总分、平均分、最高分和最低分。 select sum(分数),avg(分数),max(分数),min(分数) from 成绩表 where 课程号=5; go8)统计每门课程的总分和平均分,并按平均分从高到低排序输出。 select 课程号,总分=sum(分数),平均分数=avg(分数) from 成绩表 g
12、roup by 课程号 order by avg(分数) desc; go 9)统计每个学院学生的男女生人数。 select 院系名称,性别,count(*) from 学生表 group by 院系名称,性别; go10)查询选修了“数据库应用”课程的学生的学号和姓名。 select 学号,姓名 from 学生表 where 学号in (select 学号 from 成绩表 where 课程号in (select 课程号 from 课程表 where 课程名='数据库应用') go11)查询分数都大于王林分数的学生、课程名和分数。 select 姓名,课程名,分数 from
13、学生表,课程表,成绩表 where 学生表.学号=成绩表.学号and 课程表.课程号=成绩表.课程号 and 分数>all (select 成绩表.分数 from 学生表,课程表,成绩表 where 学生表.学号=成绩表.学号and 课程表.课程号=成绩表.课程号and 学生表.姓名='王林') and 姓名<>'王林' ; 12)定义一个函数,该函数用来查询每个学生每门课程的分数,并返回查询结果。然后调用函数,求出某个学生的学号、姓名、课程名、课程号和分数。 建立一个视图score create view score as select 姓名
14、,课程名,分数,课程表.课程号,学生表.学号 from 学生表,课程表,成绩表 where 学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号 go 定义函数 create function stu_score(stu_name char(6) returns table as return (select * from score where 姓名=stu_name) 调用函数 select * from dbo.stu_score('高黎明'); go13)查询年龄最小的学生的学号和姓名。 select 学号,姓名 from 学生表 where 出生日期in
15、 (select max(出生日期) from 学生表);go14)查询每个学生的平均分。 select 姓名,平均分= (select avg(分数) from 成绩表 where 学生表.学号=成绩表.学号) from 学生表; go15)将学生表中计算机学院的学生的学号、姓名、性别数据添加到student表中。 select 学号,姓名,性别 into student from 学生表 where 院系名称='计算机学院' go(3)创建视图命令:1)create view 学生_课程_分数as select 学生表.学号,姓名,课程表.课程号,课程名,分数from 学生
16、表,课程表,成绩表where 学生表.学号=成绩表.学号and 课程表.课程号=成绩表.课程号and 学生表.院系名称='计算机学院'2)create view 不及格学生asselect 姓名,课程名,分数from 学生表,课程表,成绩表where 学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号 and 分数<603)create view 教师信息asselect *from 教师表4)CREATE VIEW dbo.课程信息ASSELECT dbo.课程表.课程号, dbo.课程表.课程名, dbo.课程表.学分, dbo.教师表.姓名, dbo
17、.教师表.教师编号FROM dbo.课程表CROSS JOIN dbo.教师表GO5)select 总分=SUM(分数),平均分=AVG(分数)from 学生_课程_分数where 课程名='数据库应用'go(4)游标的创建和使用:1)declare 学生 cursorscrollforselect 学号,姓名,性别,出生日期from 学生表open 学生fetch last from 学生fetch first from 学生fetch absolute 4 from 学生fetch relative 2 from 学生fetch relative -2 from 学生go2
18、) declare 学生_成绩cursorscrollforselect 姓名,分数,课程号,成绩等级=case when 分数>=80 then '优秀' when 分数>=60 then '及格' when 分数<60 then '不及格'end from 学生表,成绩表where 学生表.学号=成绩表.学号goopen 学生_成绩fetch next from 学生_成绩while fetch_status = 0begin fetch next from 学生_成绩end3) declare 学生表_计算机cursorf
19、orselect 学号,姓名from 学生表where 院系名称='计算机学院'open 学生表_计算机fetch next from 学生表_计算机while fetch_status = 0beginfetch next from 学生表_计算机end(5)创建存储过程:1) create procedure StuScoreInfoasselect 院系名称,学生表.学号,姓名,性别,课程表.课程名,成绩表.分数from 学生表,课程表,成绩表where 学生表.学号=成绩表.学号and 课程表.课程号=成绩表.课程号go2) create procedure Stu_I
20、nfos_number char(8)asselect * from 学生表where 学号= s_numbergo3) create procedure Stu_1asinsert into 学生表(学号)values ('10089');go4) create procedure Cou_1asdelete from 课程表where 课程号='3'go5) create procedure gra_1number char(10)asupdate 成绩表set 分数=88where 学号=number and 课程号='5'goexcute
21、 gra_1 number='10000'6) create procedure tec_1birthday datetimeasselect 姓名,年龄等级=casewhen (2013-YEAR(出生日期)>=50 then '老年'when (2013-YEAR(出生日期)<=40 then '青年'when (2013-YEAR(出生日期) between 40 and 50 then '中年'endfrom 教师表go7) create procedure stu_2grade floatasselect 姓
22、名,课程号,成绩等级=casewhen 分数>=80 then '优秀'when 分数between 60 and 80 then '及格'when 分数<60 then '不及格'endfrom 成绩表,学生表where 学生表.学号=成绩表.学号(6)创建触发器:1)create trigger TR_ScoreCheckon 成绩表for insert,updateasbegindeclare ScoreValue realselect ScoreValue=(select 分数from inserted)if ScoreVal
23、ue>100 or ScoreValue<0 thenprint '-'end ifendgo2)create trigger TR_Stu_Delete on 学生表for deleteasdeclare StuNum char(10)select StuNum=学号 from deleted delete from 成绩表 where 学号=StuNumgo3)create trigger TR_SexCheck on 学生表for insertasbegindeclare xingbie char(2)select xingbie=(select 性别from
24、 inserted)if xingbie not in('男','女')rollback transactionend7、数据库的备份与还原(1)备份数据库1)在SQL Server 2005 企业管理器的操作界面下,打开数据库目录,选择数据库名称:学生成绩管理系统。2)然后点击菜单栏中的工具,选择备份数据库,备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点击添加,如果原来没有路径和名称则直接点击添加,接着指定路径和文件名,指定后点确定返回备份窗口,再点确定进行备份。(2)还原数据库1)打开SQL企业管理器,在控制台根目录中依次点
25、开Microsoft SQL Server,在SQL Server组双击打开服务器,点图标栏的新建数据库图标,新建数据库的名字自行取,点击新建好的数据库名称,然后点击上边菜单中的工具,选择恢复数据库。2)在弹出来的窗口中的还原选项中选择从设备,点击选择设备,点添加,然后选择你的备份文件名,添加后点确定返回,此时设备栏应出现刚才选的数据库备份文件名,备份号默认为1,然后点击上方常规旁边的选项按钮。3)在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口中间部位的将数据库文件还原为这里要按照SQL的安装进行设置(也可以指定自己的
26、目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如SQL数据库装在D:/Program SQL Server/MSSQL/Data,那么就按照恢复机器的目录进行相关改动,并且最后的文件名最好改成当前的数据库名(如原来是zw0001.mdf,现在的数据库是zw0002,就改成zw0002.mdf),日志和数据文件都要按照这样的方式做相关的改动,这里的恢复目录可以自由设置,前提是该目录必须存在,否则恢复将报错。4)修改完成后,点击下面的确定按钮进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功。(3)数据表与Excel进行数据的导出操作1)启动
27、SQL Server企业管理器后,点击SQL Server组,选择指定的服务器,选中要导出的数据库名称,点击鼠标右键,在弹出的菜单中点击“所有任务”选择“导出数据”选项,就会弹出数据导入导出向导。2)单击“下一步”按钮,打开选择数据源对话框,首先在“数据源”旁的下拉列表中选择数据源。如果列表中没有列出需要的数据库可以点击刷新。单击“下一步”按钮,打开“选择目的”对话框,在“目的”旁的下拉列表中选择Microsoft Excel97-2000。“文件名”是选择一个要导入的excel表中。单击“下一步”按钮,打开“指定表复制或查询”对话框,在此处可以指定传递的内容,可以传递表或某一查询的数据结果集
28、甚至于数据库对象。单击“下一步”打开“选择表和视图”对话框。从中选择一个或多个表或视图进行传递。通过“预览”按钮可对将要传递的数据进行预览。单击“下一步”打开“保存、调度和复制包”对话框,单击“下一步”,打开“保存DTS包”对话框。在“名称”输入该包的名称“新建包”,可以将包保存在本地服务器。单击“下一步”在“正在完成DTS导入/导出向导”对话框中单击“完成”,结束包的创建。点击“完成”按钮,就完成了数据库到excel的导出操作。(4)数据表与Excel进行数据的导入操作1)打开企业管理器,打开要导入数据的数据库,在表上点击鼠标右键,点击所有任务中的导入数据,此时会 弹出DTS导入/导出向导,
29、单击下一步。2)选择数据源Microsoft Excel97-2000,文件名选择要导入的xls文件,按下一步。选择目的用于SQL Server的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如vvv),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如学生成绩管理系统),按下一步。选择用一条查询指定要传输的数据,按下一步。按查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的选中列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按下一步。选择要对数据进行排列的顺序,
30、在这一步中选择的列就是在查询语句中order by后面所跟的列,按下一步。如果要全部导入,则选择全部行,按下一步。则会看到根据前面的操作生成的查询语句,确认无误后,按下一步。会看到表/工作表/Excel命名区域列表,在目的列,选择要导入数据的那个表,按下一步。选择立即运行,按下一步。会看到整个操作的摘要,按完成即可。 二、职工工资信息管理系统1.使用SQL Server Management Studio 创建数据库 步骤如下: a)在对象资源管理器中,展开“数据库”。 b)再展开“服务
31、器对象”选项,右击“新建数据库”选项。 c)在“常规”页面输入职工数据库:ZGSJK的名称。如图:1 d) 在“数据文件”页面输入文件名、位置、初始大小,根据题目要求,设置文件属性。如图1 e) 在“事务日志”页面输入文件名、位置、初始大小,根据题目要求,设置2.步骤如下: a)在对象资源管理器中,展开“数据库”。 b)再展开“服务器对象”选项,右击“ZGSJK”数据库选项,选择“属性”。
32、160; c) 在“数据文件”页面输入文件名、位置、初始大小,根据题目要求,设置文件属性3. 分别创建表:JBGZB、JCGZB 、ZGJB。JBGZBJBGZB字段名数据类型长度说明BHchar6不空,主键XMchar8不空ZWchar16空JBchar8空JBGZdecimal6,2空ZWGZdecimal6,2空BT1decimal6,2空BT2decimal6,2空YFdecimal7,2空JCGZBJCGZB字段名数据类型长度说明BHchar6不空,主键XMchar8不空ZWchar16空JBchar8空JL1decimal6,2空JL2decimal
33、6,2空KC1decimal6,2空KC2decimal7,2空SFdecimal7,2空XJdecimal7,2空ZGJBZGJB字段名数据类型长度说明BHchar6不空,主键XMchar8不空XBchar2空CSRQchar空JGdecimal30空LXDHdecimal20空ZZdecimal32空JCZKdecimal12空BZdecimal50空create table JBGZB( BH char(6) primary key not null,
34、60; XM char(8) not null, ZW char(16) null ,
35、; JB char(8) null , JBGZ decimal (6,2) null, ZWGZ decim
36、al (6,2) null , BT1 decimal (6,2) null , BT2 decimal (6,2) null , YF decimal (7,2) null)Gocreate table JCGZB(
37、60; BH char(6) primary key not null, XM char(8)not null, ZW char(16) null ,
38、 JB char(8) null , JL1 decimal (6,2) null , JL2 decimal (6,2) null
39、0;, KC1 decimal (6,2) null , KC2 decimal (7,2) null , SF decimal (7,2) null,XJ decimal (7,2) null)Gocreate table ZGJB(
40、BH char(6) primary key not null,XM char(8) not null,XB char(2) null, CSRQ datetime null, JG Varchar(30) null, LXDH Varchar(20) null, ZZ Varchar(32) null , JCZK Varchar(12)
41、null , BZ Varchar(50) null, foreign key (BH) references JBGZB(BH),foreign key (BH) references JCGZB(BH) )Go4. ALTER TABLE ZGJB ADD JB char(8) null ;ALTER TABLE JCGZB DROP COLUMN ZW;5. INSERT INTO JBGZB
42、60;(BH,XM) SELECT BH,XM FROM ZGJB;UPDATE JBGZB SET YF=JBGZ+ZWGZ+BT1+BT2;UPDATE JCGZB SET XJ=JL1+JL2-KC1-KC2;UPDATE JCGZB SET SF=YF+XJWHERE 'YF'= (SELECT YF FROM JBGZB WHERE JCGZB.BH=JBGZB.BH);3)删除表JBGZB中JB为“初级”职工名单。DELETE FROM JBGZB WHERE JB='初级'6.检索表ZGJB中的全部信息; S
43、ELECT * FROM ZGJB 检索表JBGZB中“副处级”职务的职工信息; SELECT ZW FROM JBGZB WHERE ZW='副处级'检索职工数据库(ZGSJK)中的信息,分别来自ZGJB、JBGZB和JCGZB,具体要求是显示:籍贯是“上海”,职务是“教授”,JL1在900元以上(含900元)的职工名单;即包含:BH(编号),XM(姓名),JG(籍贯),ZW(职务),JL1(奖励1),JL2(奖励2),JBGZB的YF,JCGZB的XJ、SF职工名单。SELECT JG,ZW,JL1,ZGJB.BH,ZGJB.XM,JL2,YF,XJ,SF FROM ZGJB,JBGZB,JCGZB WHERE JG='上海' and ZW='教授' and JL1+JL2>=900 and ZGJB.BH=JBGZB.BH and ZGJB.BH=JCGZB.BH;7. 创建基本工资表(JCGZB)在列:JB(级别)和SF(应发)上的非聚簇复合索引:JBSF。CREATE NONCLUSTERED INDEX JBSF_index ON JCGZB (JB,SF);删除ZGJB中的JG索引,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024抚州幼儿师范高等专科学校辅导员招聘笔试真题
- 2025年铁路货物运输服务项目合作计划书
- 2025年金华市级机关基层遴选公务员考试试题【答案】
- 2025年经典心理健康知识竞赛考试练习题库(250题)【答案】
- 2025年教师资格证考试常考知识点归纳总结【答案】
- 2025年吉林通化市东昌区事业单位招聘考试笔试试题【答案】
- 2025年精密陶瓷劈刀项目合作计划书
- 2025年南通市少年宫选聘教师考试笔试试题【答案】
- 消费升级视域下体育用品制造业高质量发展的内在机理、现实困境及推进路径
- 2025年电子计步器实验分析仪器项目合作计划书
- 北师大版八年级物理上册课件【全册】
- nord stage 2用户手册简体中文版
- 北京东城二中分校高一分班考试数学试题
- 周三多管理学5版课后答案
- 伦敦三一口语GESE3级内部讲义
- SB/T 10439-2007酱腌菜
- 1IEC62660-1中文电动道路车辆用二次锂离子蓄电池锂离子电池性能试验
- HPE 3PAR8400、HPE 3000B SAN Switch安装及维护手册
- 汽轮机厂工业驱动技术介绍
- 梁平法识图PPT通用通用课件
- 新概念英语第一册单词汇总打印版已排版
评论
0/150
提交评论