第一篇:SQL实训报告
SQL Server 实训报告
班级:
姓名:
学号:
实训名称:SQL Server数据库应用技术
实训题目:教学信息管理
实训目的:通过本次实训,使学生了解开发数据库应用程序的过程;通过数据库设计,加深对数据库基础理论的理解并能灵活运用;掌握利用SQL Server 2000数据库管理系统创建、管理、维护数据库的基本方法及过程;培养开发数据库的设计思维。
实训内容:
本人与郭晓峰主要负责‘教学信息管理 ’系统。
主要包括数据的导入和导出、数据库结构的分析与建立、表关系的添加、查询、外关键字的约束、检查约束、默认值、试图、表存储过程和触发器的学习,以及在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中的数据及修改表和删除表的操作。本人主要负责数据的导入,数据库的建立,查询
数据库的建立:包括数据附加 分离
数据导入:导入EXCEL表中各个数据(学生信息表 班机信息表 学生成绩表 授课表教师表 课程信息表)
查询:查询学生记录数查询成绩平均分上课人数 学校人员 低于平均分者 学生信息 低于平均分者自定义函数
一 总体设计思路
当看到这个题目我想到一个完整的教学信息管理应包括:学生信息表、班级信息表、课程信息表、学生成绩表、教师表、授课表等。在整个系统中有两个实体:学生和老师。
二 表结构
我的系统有六张表组成:
学生信息表
列名数据类型宽度允许空值说明学号char4否主键姓名char10是性别char2是默认值:男班级号char8是专业char20是系别char20是联系电话char20是入学日期datetime8是备注char50是班级信息表
列名数据类型宽度允许空值说明班级号Char8否主键、外键年级Char8是班主任Char8是教师号char8是课程信息表
列名数据类型宽度允许空值说明课程号Char8否主键课程名称Char10是课程类型Char8是学分Char8是课程说明Char10是学生成绩表
列名数据类型宽度允许空值说明学号Char8否主键班级号Char8是学期Char8是课程号Char8
是课程名称Char8是成绩decimal8是教师表
列名数据类型宽度允许空值说明教工号Char8否主键教师姓名Char8是性别Char8是职称Char8是授课表
列名数据类型宽度允许空值说明教工号Char8否主键课程号char8是Excel表格主要如下: 班级信息
学生信息
学生成绩
教师表
授课表
课程信息:
二 数据库的建立:
1在开始菜单中选择“程序——MicrosoftSqlServer——企业管理器”选型,就启动了企业管理器,打开工具窗口如图所示
2在企业管理器树状目录窗口中展开一个服务器组,选定服务器。然后在该服务器下的‘数据库’结点上单击鼠标右键,快捷菜单中的‘新建数据库’选项出现数据库属性对话框,如下图所示
3数据库属性有三个标签,用来数据名称和数据文件,日志文件的名称、位置、初始大小和属性等内容。
在‘常规‘标签的名称文本框中输入’教学管理系统‘选择服务器默认设置的排序规则名称 4数据文件、日志文件均按服务器默认的数值
三 数据的导入如下:
1在‘教学管理系统‘数据库节点上单击鼠标右键’,在‘所有任务’菜单上单击‘导入数据’选项启动后,显示初始工作界面如下图:
‘数据源’选择microsoftExcel 97-2000,‘文件名’选择所需的表,单击下一步,过程如下图所示:
四 查询过程
(1)查询学生信息的学生人数。
use 教学信息管理
declare @recordcount int
select @recordcount=count(*)from 学生信息表
select @recordcount as '学生表(学生信息表)中记录数'
go
查询结果
(2)查询学校人员
use 教学信息管理
select 教师姓名+职称as '学校人员'
from 教师表
查询结果
(3)查询平均分,首先要自定义函数
1、use 教学信息管理
go
create function average_1()
returns real
begin
declare @aver real
select @aver=(select avg(成绩)from 学生成绩)
return @aver
end2、use 教学信息管理
go
select dbo.average_1()as 总平均分
select * from 学生成绩$
where 成绩 > dbo.average_1()
查询结果
(4)查询低于平均分人数
查询结果
use 教学信息管理
select distinct 学号 as 分数低于平均分者
from 学生成绩
where 成绩<(select avg(成绩)from 学生成绩)
(5)查询学生信息
use 教学信息管理
select 学号,性别,系别,专业,联系电话,入学日期,备注
from 学生信息表
order by 学号
查询结果
(6)查询上课人数
use 教学信息管理
go
declare @record int
select @record=count(*)from 学生信息表
if @record>40
begin
print '该班有'+ ltrim(str(@record))+ '人'
print '进行分班上课'
end
else
begin
print '该班有'+ltrim(str(@record))+ '人'
print '单班上课'
end
查询结果
五 实训总结
我们进入了一个新的充满机遇与挑战的时代,信息系统在管理各项事务中有着普遍的应用,促进了企业管理工作的提升。管理信息系统是为管理服务的,它的开发和建立使企业摆脱落后的管理方式,实现管理现代化的有效途径。管理信息系统将管理工作统一化、规范化、现代化,极大地提高了管理的效率,使现代化管理形成统一、高效的系统。管理信息系统使用系统思想建立起来的,以计算机为信息处理手段,以现代化通信设备为基本传输工具,能力管理决策者提供信息服务的人机系统,这无疑是将管理与现代化接轨,以科技提高管理质量的重大举措。管理信息系统将大量复杂的信息处理交给计算机,使人和计算机充分发挥各自的特长,组织一个和谐、有效的系统,为现代化管理带来便捷。?
数据库是计算机应用的一项重要技术。通过这次的实训,学到了很多的东西,首先是小组成员的协调工作,分配工作,知道了团结的力量与重要性,其次是我把课本里的难关攻克了,查询就是我的难关,在这两周的实训中,了解了查询的相关内容,对查询再也不是茫然的!。本数据库与课本内容紧密结合,结构紧凑,根据所学知识,建立了教学性能系管理系统,建表时也有很多困难,要考虑字段的类型,长度、主键的建立等等
Excel表的导入也不是那么顺利,经过失败的尝试,还是完美的导入到数据库中。
查询是SqlServer 中的重中之重,在制作过程中,也是小组最努力的地方,了解查询语句的先后顺序,例如 selectfromwherebegincreate „„这些单词的在Sqlserver 中的主要功能。有时在查询中会遇到把它们的顺序写错,有时会把表里的字段弄错。但最终还是克服了种种难题,经过我们的努力最终完成了教学信息管理系统。
虽然不是最好的,但我相信,只要努力了,付出了,把不明白的弄懂了,学会了,才是关键!
第二篇:SQL数据库实训报告
附件:
1、创建触发器
1、创建触发器trigger_9_1,实现当修改学生课程表(xskc)中的数据时,显示提示信息“学生课程表被修改了”。
在学生课程表上建立触发器,具体操作如下: 在查询分析器的查询窗口中,输入如下T-SQL语句: USE 学生成绩库 GO CREATE TRIGGER trigger_9_1 ON xskc FOR UPDATE AS
PRINT ‘学生课程表被修改了’ GO 执行后,在学生课程表上触发器trigger_9_1创建成功。
2、创建触发器trigger_9_3,实现当删除学生课程表中某门课程的记录时,对应学生成绩表中所有有关此课程的记录均删除。
可以在查询分析器的查询窗口中输入如下语句: USE 学生成绩库 GO CREATE TRIGGER trigger_9_3 ON xskc FOR DELETE AS
C程序设计 实训
DELETE xscj FROM xscj,deleted WHERE xscj.课程号=deleted.课程号 GO
3、创建触发器trigger_9_4,实现当修改学生课程表(xskc)中的某门课的课程号时,对应学生成绩表(xscj)中的课程号也作修改。
当修改学生课程表中记录时,相当于删除一条旧记录并插入一条新记录,删除的旧记录在deleted临时表中,插入的新记录在inserted临时表中。因此,可以通过在查询分析器的查询窗口中输入如下语句创建触发器:
USE 学生成绩库 GO CREATE TRIGGER trigger_9_4 ON xskc FOR UPDATE AS
IF update(课程号)BEGIN UPDATE xscj
SET 课程号=(SELECT 课程号 FROM inserted)FROM xscj,deleted WHERE xscj.课程号=deleted.课程号 END GO 我们可以通过修改某门课的课程号,来查看触发器是否被激发执行了。现在通
C程序设计 实训
过一个语句修改原课程号为“101”的学生课程表中的记录,将其课程号改为“111:”
UPDATE xskc SET 课程号=’111’ WHERE 课程号=’101’
然后,再查看一下学生成绩表中的记录。可以看到原来的“101”课程的课程号均改成了“111”,但课程名不变,还是“计算机文化基础”。
2、修改触发器
如果需要修改触发器的定义,只需一个操作即可除去并重新创建触发器,或重新定义已有触发器。
如果更改触发器引用的对象名,则必须修改触发器使其文本反映新的名称。因此,在重命名对象前,首先显示该对象的相关性,以确定所建议的更改是否会影响任何触发器。
也可以重命名触发器。新名称必须遵守标识符规则。您只能重命名自己拥有的触发器,而数据库所有者可以更改任意用户的触发器名称。需重命名的触发器必须位于当前数据库中。
可以使用ALTER TRIGGER语句修改触发器。
4、如果已通过例9.2创建了触发器trigger_9_2,现要对它进行修改,要求显示的提示信息改为“学生课程表中课程号为XXX的记录被修改了”。
可以在查询分析器的查询窗口中使用ALTER TRIGGER语句修改触发器,语句如下:
USE 学生成绩库
C程序设计 实训
GO ALTER TRIGGER trigger_9_2 ON xskc FOR UPDATE AS
DECLARE @kch char(3)SELECT @kch=课程号 FROM deleted PRINT ‘学生课程表中课程号为’+@kch+’的记录被修改了’ GO 触发器被修改,再执行下述更新语句: UPDATE xskc SET 学分=5 WHERE 课程号='101' 可以在结果窗格中,看到消息:“学生课程表中课程号为101的记录被修改了”。
3、删除触发器
当不再需要某个触发器时,可将其删除。当触发器被删除时,它所基于的表和数据并不受影响。删除表将自动删除其上的所有触发器。删除触发器的权限默认授予在该触发器所在表的所有者。
可以使用DROP TRIGGER语句删除触发器。
5、删除学生课程表上的触发器trigger_9_2。
在查询分析器的查询窗口中输入语句: DROP TRIGGER trigger_9_2 执行后,触发器即被删除。
C程序设计 实训
第三篇:SQL Server实训报告
SQL Server实训报告
经过一个学期的对SQL Server的学习和这一周的SQL Server实训,我们对数据库有了新的认识,知道了数据库的重要性,也掌握了许多对对数据库的操作方法,包括数据库的创建、表的创建、视图的创建、数据的查询、数据 的导入/导出、数据的复制和备份、T-SQL编程、创建存储过程、创建触发器、SQL Server 2000 安全管理等。下面我就浅谈一下我实训过程和心得:
实训过程:
1.建立数据库、导入数据
(1)在 D 盘新建文件夹<班级_学号>。
(2)注册数据库服务器。
(3)使用 SQL-EM 创建数据库<班级_学号>,将数据文件、事务日志 文件设置在D 盘文件夹<班级_学号>。
(4)将给定的 Excel 数据 nit.xls,导入到自己所创建的库中,并将表命 名为<班级_学号_nit>。
(5)修改表<班级_学号_nit>的结构为:姓名 char(8),拼音 char(18),性别 char(2),证件号 char(18),报名点名称 char(30),报名点编号 char(10),学员编号 char(18),报考科目 ID char(4),报考科目名称 char(40),报名日 期 datetime,成绩 int。
2.建立表及表间关系
(1)将表<班级_学号_nit>分解如下3 个表。考生表:<班级_学号_ks>,结构为:证件号 char(18),姓名 char(8),性别 char(2),报名点编号 char(10)。主键为证件号。
科目表:<班级_学号_km>,结构为:科目编号 char(4),科目名称 char(40)。主键为科目编号。
成绩表: <班级_学号_cj>,结构为:证件号 char(18),科目编号 char(4),报名日期 datetime,成绩 int。主键为证件号、科目编号。指定证件号为外 键,参照考生表的证件号。指定科目编号为外键,参照科目表的科目编号。
(2)使用企业管理器创建上述 3 个表
(3)使用 SQL语句将表<班级_学号_nit>中数据插入到上述 3 个表中。
3.数据检索
(1)检索所有考生的姓名、证件号。
(2)检索所有考生的成绩信息。
(3)检索至少报考一个科目的女考生的姓名。
(4)检索证件号为 ***622 的考生没有报考的科目。
(5)检索至少报考 2 个科目的考生。
(6)检索全部考生都报考的科目的科目编号、科目名称。
(7)检索所有姓潘的考生的姓名和性别。
(8)统计报考科目编号为1011 科目的考生的平均成绩。
(9)统计每个科目的考生人数、平均成绩。
(10)统计每个科目及格的人数。
(11)检索年龄大于 20 岁的男考生的姓名、年龄。
(12)检索报考科目编号为1011 的考生的平均年龄。
(13)统计年龄大于女考生平均年龄的男考生的姓名和年龄
(14)统计年龄大于所有女考生年龄的男考生的姓名和年龄
4.Transact-SQL语言编程(1)启动查询管理器。
(2)用 Transact-SQL 语言编写程序,统计每个科目的考生人数、及格 人数、不及格人数。
(3)用 Transact-SQL语言编写程序,在考生表中修改科目编号为 1011 考生的成绩,若成绩不及格时成绩提高5%,若成绩及格时成绩提高 3%。
5.创建视图
(1)在考生表上创建视图 v_<班级_学号_ks>,包括证件号、姓名、性 别、年龄、报名点编号 char(10)。
(2)在视图 v_<班级_学号_ks>上,将实习内容检索数据中(11)~(14)题 分别创建视图,视图名要求为 v_<班级>_<学号>_<题号>。
6.创建存储过程和触发器
(1)使用 SQL-EM 在数据库<班级_学号>中创建统计考生报考模块数 的统计表,表名要求为:<班级>_<学号>_n,包含列:科目编号、char(4),总人数、smallint,男考生、smallint,女考生、smallint。主键为科目编号。其中,、(2)使用 SQL-EM 编写一个存储过程,存储过程名要求为:<班级>_< 学号>_total,用于由成绩表统计出数据插入统计表,并执行该存储过程。
(3)使用 SQL-EM 在成绩表上创建 insert、delete以及 update触发器,用于维护成绩表与统计表间数据的一致性。
(4)编写存储过程 ks_insert,插入考生的成绩信息,要求该存储过程 有两个参数@证件号、@科目编号分别表示证件号、科目编号,并要求具 有错误的捕获和处理的能力。
7.数据复制和恢复
(1)复制保存数据库<班级_学号>对应数据文件、事务日志文件。(2)在 SQL-EM 中删除数据库<班级_学号>。
(3)附加数据库<班级_学号>
(4)备份数据库<班级_学号>为<班级_学号_bak>。
(5)删除考生表、科目表、成绩表。
(6)还原数据库<班级_学号>。
8.安全管理
(1)设置 SQL Server 2000 数据库服务器使用 SQL Server 和 Windows 混合认证模式。
(2)创建登录帐户<班级_学号>,自行设置密码。
(3)创建登录帐户<班级_学号>在数据库<班级_学号>中对应的用户< 班级_学号>。
(4)授予<班级_学号>用户对<班级_学号_ ks>表执行 select 语句的许 可。
(5)在查询分析器中,用登录帐户<班级_学号>连接登录 SQL Server 数据库服务器,测试其对数据库的访问权限。
总的来说,通过这次实训,我们学到了许多SQL Sever的使用方法。更全面的掌握了SQL Sever的各个细节。从数据库、数据表的创建和修改,到数据库的约束、视图、查询、SQL管理、数据的导入、导出、备份和还原、SOL查询语句、存储过程、触发器等。以及安全访问控制;登录账户的管理;数据库角色的管理;用户权限管理。维护数据库的安全等确保数据库正常运行的重要工作。
实训课是在学习与探索中度过的,短暂的一星期实训是结束了,通过这一次锻炼,我们学到了许多知识,也认识到了自己的一些不足之处,但无论对我们以后的学习还是工作。都有很好的帮助。
第四篇:VB、SQL实训总结
VB、SQL实训总结
为期五天的实习,很快就过去了,让我重新了解了丰富多彩的编程生活,感受到了学习的快乐,也感觉到了许许多多的专业问题,亲身体验了窗体与工程制成之后的喜悦之情。
在实训期间,我学到了许多东西,遇到了一些困难,也看到了自己本身存在着许多问题。
这次实训给我带来了危机感和压迫力,让人警醒,更加清楚自己的水平和重量,心里总有种被大石头压着的无力感,但是又凭着一种坚持,奋力的抗争着。所以也得出个结论,那就是——我得好好好好的努力啊。
这已经是我们的第四次实训了,在我进入大学的这两年多里,或多或少的学到了一些专业的东西。
我知道自己很爱玩,于是为了能够提高锻炼自己,我把本次为期一周的VB、SQL制作实训看作是一个通向社会,通向我的工作岗位的“理论与实践相结合的桥梁”。在本周的实训和学习,我一直知道此次实训的目的,也知道我自己的目的,同时也清楚目前自己的不足——缺乏相应的知识与经验,对所学的专业知识不能够很好地运用于实践操作,所以我是认真的对待这次实训的。
在这次实训中,我也有许多收获。首先,我体会到了作为一个VB设计师,不会将VB与SQL结合的痛苦和尴尬;然后,我发现了很多以前都不曾注意到的细节;其次,在实训中,我对作为一名编程者应该学习的内容做了一个更深层次的理解;最后,我还从这次实训中看到了自己很他人的差距,危机意识增强,为了不使这个差距拉大,甚至赶上前面的同学,我会努力的。
本次实训,给我最深刻、最刻骨铭心的感觉就是累,不仅每天白天要一整天对着一台机器,而且到了晚上还要对着这台机器来一个法式的“秉烛夜谈”,可惜的是没有浪漫的事前发生,我也只是对牛谈情而已,不似李白的“举杯邀明月,对影成三人”啊,我就和一部会说话的机器唧唧歪歪。我时常想,以后的日子里,如果我成为了一名编程师也会是这样吗?好像很无聊的样子啊。好动的我一定坐不住吧。可是,我也知道,为了衣食父母,为了生存,为了未来,现在我还没有任何的资格想这个问题,时间不对,而现在最最应该想的是——我要怎样成为一个顶级的编程师。当我终于有能力的时候,才是考虑无不无聊的问题,我还是明白这一点点。
经过多番的努力和辛酸,我成功地完成了这次过程艰辛的实训,而且我从中体会到了一种叫做‘成功的喜悦’的感觉,那种小有成就的兴奋是只有置身其中的人才能体会的,就好比我啊,虽然知道笑到最后的才是老大,但是偶尔阿Q一下来调节生活乐趣也是的一项很必要的事情吧。
总之,这次实训为我提供了与众不同的学习方法和学习体会,从书本中走出来,面对现实,为我将来走上社会打下了扎实的基础,铺了一条五光十色的大马路。而且,我也体会到了前人总结出的许多的实践经验,而且一直都知道技术永远是工资的基础,社会是不会要一个一无是处的人的,所以,为了生活庸俗一点,努力一点,多累一点,好好学习技术,将来才有吃大餐的钱呀。
因此,我知道,作为在校电商专业的大专生,我能做的就是好好的吸取知识,努力的提高自己的技术水平和自身的综合素质,提高自己的表达能力、写作能力和合作能力。如此,出了社会,自己有了能力,到时候才会是 “吃嘛嘛香”,并且很牛逼的是自己选公司,而不是悲惨的等待公司来选。我相信在不久的未来,会有属于我自己的一片天空,而且这片天空会很蓝很蓝,没有黑黑的乌云,只有灿烂的阳光!
在编程的过程中遇到问题,可以说得是困难重重,这毕竟是第一次编程这么多,这么认真,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说代码不熟悉,还好通过老师的细心指导才能达到最终效果„„通过这次程设计与制作实训,一定把以前所学过的知识重新温故。
第五篇:SQl实训总结书
SQL实训总结
这周的实训是SQL,通过短暂的几天时间让我深有感触, 从一开始的构思到今天写下这份总结。期间时间虽然只有四天但是也学到了不少的知识。
在实训的刚开始构想只有大体的思路,忽略了一些细节,因此在我真正做这个数据库时发现有很多错误,有的时候要解决一个错误反反复复会花上很多时间。有的时候实在想不出来会再网上查或者直接问同学,我们班有的同学还是很厉害的,所以,在他们身上也学到了不少知识。
实训中,不单单是只有数据库,也设计到了C#,以前的C#就学的不好,现在突然用起来真的什么都不会。我们是五个人一组的,中间大家商量了很多次,决定用aspx的完成这次的实训任务,大家都很努力地为这次实训大家都很努力,也很认真。在实训的过程中有很多平时没有遇到过的问题,实训也让我知道, 书本上的知识只提供方法的借鉴,实践中自己必须摸索出适合具体工作的方法,在第三天的时候,组里的人又开始用C#做实训任务,可是在最后老师检查的时候,我们没有做出来,但是我们不后悔,因为尝试过就不会什么都不懂。就这样一周SQL的实训结束了,回顾这次的实训,至今我仍感慨颇多。的确,从开始学数据库再从理论到实践,在一周的实训日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。并且亲身体会到了理论与实际相结合的重要性,也提高了自己的实际动手能力和独立思考的能力。也感谢老师一直以来的栽培。