第一篇: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 数据库,我所学到的知识很不牢固,当时在课堂上听课所记住的也并不多,所以在试训开始时,真的不知道该干些什么?有一种“何去何从”的感觉!但随着老师的教课和讲解,以及和同学的讨论,再结合自己所知道的知识和老师所发放下的课程内容,根据这些实际的情况,我对自己将要做的事也有了兴趣和信心。所以在接下来的时间中,我们在老师的帮助下开始了数据库相关的实训。
在这次的google订餐系统的设计过程中,我们根据该google订餐系统的功能,将其分解三大部分来完成,第一部分就是建立数据库和表,并给其添加约束;第二是角色的管理,分为管理员,订餐用户和餐馆;第三就是用编程语言建立管理菜单。所以 试训的内容是从数据库和数据表的创建和修改开始的,表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表属性,有查看表信息,修改表中数据,删除表中的数据以及修改表与删除表的操作。我们以SQL Server数据库为基础,建立一个google订餐系统的数据库管理体系,并将数据库与程序连接,用编程语言建立数据库管理菜单。老师给我们讲了库和表的创建方法,以及约束的内心及其语法结构,让我们知道了不同约束的功能和使用的环境,还给我们说了标识列的使用和作用。讲了数据库的操作,增删改查。使我们掌握了insert into,deleted from,update set,以及select*from语句的的相关知识和运用。其中还学到了分页查询以及多表查询。
从这次试训中让我们更明白了一些知识,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。通过这次试训,让我深刻的了解到自己的不足,要想对进行数据库更深的学习,自己得要多看有关的课外书籍,并多做练习,不懂得要多问同学和请教老师,以解决自己遇到的难题,知道更多的知识。实训不仅是让我们在实践中对理论知识的验证,也让我们知道我们多学的知识在社会上的运用,把所学知识和企业商业接轨。
这次实训,不仅让我们学到了许多有关数据库的知识,老师也给我们讲了很多社会现状和就业情况,让我们不同的角度了解这个专业的就业趋势。让我们在今后的学习中更有动力的充实自己,曾加自己的知识面和锻炼自己各方面能力。
第三篇: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 中的主要功能。有时在查询中会遇到把它们的顺序写错,有时会把表里的字段弄错。但最终还是克服了种种难题,经过我们的努力最终完成了教学信息管理系统。
虽然不是最好的,但我相信,只要努力了,付出了,把不明白的弄懂了,学会了,才是关键!
第四篇:数据库实训报告
实训报告
实训课程:
JAVA WEB项目实训
实训名称:
JAVA项目实训综合能力培养 实训地点:中国江苏无锡国家软件园巨蟹座C601 学生姓名:胥康 学号:140703133 指导教师:张志华
实训时间:2016年7月22日
实训数据库MySQL与JAVA 编程
一、实训目的
熟悉扫描器结构及工作原理,监测输入实训结果分析,通过该实训,从设计到性能测试完成完整的实训流程,锻炼同学编程能力、测试能力、设计能力、全局把控能力、学习能力、动手能力和分析问题能力等。
二、实训内容
1、设计好数据库结构,录入测试数据五条以上。
2、通过标准Statement语句对象,完成增删改查四个类编程。
三、实训器材 教学投影机一台、个人笔记本电脑一台、本地服务器一台(教师机)
四、实训步骤与结果
/** *功能:完成数据查询
*/ package com.ec;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;/** * @author xukang * */ public class SelectData {
/**
* @paramargs
*
*/
public static void main(String[] args)throws Exception{
Class.forName(“com.mysql.jdbc.Driver”);
String url=“jdbc:mysql://localhost:3306/ECDB1?useSSL=false”;
String user=“root”;
String password=“12345678”;
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
String sql=“select * from ware”;
ResultSet r=st.executeQuery(sql);
while(r.next()){
System.out.println(r.getInt(1)+“t”+r.getString(2)+“t”+r.getFloat(3)+“t”+r.getString(4)+“t”+r.getString(5)+“t”+r.getString(6));
}
r.close();
st.close();
conn.close();
// TODO Auto-generated method stub
} }
/** * 功能:完成数据插入工作
*/ package com.ec;
import java.net.PasswordAuthentication;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;/** * @author xukang * */ public class InsetData {
/**
* @paramargs
*/ public static void main(String[] args)throws Exception{
Class.forName(“com.mysql.jdbc.Driver”);
String url=“jdbc:mysql://localhost:3306/ECDB1?useSSL=false”;
String user=“root”;
String password=“12345678”;
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
//关键点:查询---executeQuery()增删改-----executeUpdate()/executeLargeUpdate()
String sql=“insert into ware values(10,'蛋糕',100.0,'快乐','黄色','徐州')”;
st.executeUpdate(sql);
// TODO Auto-generated method stub
st.close();
conn.close();
} }
/** *
*/ package com.ec;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;
import org.omg.PortableInterceptor.USER_EXCEPTION;
import com.mysql.jdbc.Driver;/** * @author asus * */ public class UpdateData {
/**
* @param args
*/ public static void main(String[] args)throws Exception{
Class.forName(“com.mysql.jdbc.Driver”);
String url=“jdbc:mysql://localhost:3306/ECDB1?useSSL=false”;
String user=“root”;
String password=“12345678”;
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
String sql=“update ware set name='飞机' where id=6”;
st.executeUpdate(sql);
st.close();
conn.close();
// TODO Auto-generated method stub
} }
/** *
*/ package com.ec;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;/** * @author xukang * */ public class DeleteData {
/**
* @paramargs
*/ public static void main(String[] args)throws Exception{
Class.forName(“com.mysql.jdbc.Driver”);
String url=“jdbc:mysql://localhost:3306/ECDB1?useSSL=false”;
String user=“root”;
String password=“12345678”;
Connection conn=DriverManager.getConnection(url,user,password);
Statement st=conn.createStatement();
String sql=“delete from ware where id=10”;
st.executeUpdate(sql);
st.close();
conn.close();
// TODO Auto-generated method stub
} }
五、分析与结论
针对实训的测试结果其中重要的结论如下:
通过扫描器课题的实训课程的学习,掌握了java基本扫描器工作原理、结构设计,形成了完整的java的认识,激发了对java的研究兴趣,同时通过该课程锻炼了自己的针对目标的学习能力、分析能力和动手能力。
第五篇:数据库实训报告
北京联合大学
实训报告
课程(项目)名称: 数据库原理 学 院: 联大师范学院 专 业:计算机科学与技术 班 级: 10级1班 学 号: 2010020306133 姓 名: 蒋 丹 成 绩:
2012年 6 月 8 日
目录
1、概述........................................................................................错误!未定义书签。
2、总体设计................................................................................错误!未定义书签。
2.1、需求分析.....................................................................错误!未定义书签。2.2、项目规划.....................................................................错误!未定义书签。2.3、系统功能架构图.........................................................错误!未定义书签。
3、系统设计................................................................................错误!未定义书签。
3.1、设计目标.....................................................................错误!未定义书签。3.2、开发及运行环境.........................................................错误!未定义书签。3.3、数据库设计.................................................................错误!未定义书签。
3.3.1、系统E-R图......................................................错误!未定义书签。3.3.2、主要数据表的结构..........................................错误!未定义书签。
4、主要功能模块设计................................................................错误!未定义书签。
4.1、连接数据库.................................................................错误!未定义书签。4.2、主窗体设计.................................................................错误!未定义书签。4.3、系统登录.....................................................................错误!未定义书签。4.4、商品入库.....................................................................错误!未定义书签。4.5、库存盘点.....................................................................错误!未定义书签。4.6、入库查询.....................................................................错误!未定义书签。
5、结论........................................................................................错误!未定义书签。
6、参考资料................................................................................错误!未定义书签。
7、评语..........................................................................................................................4
7、评语
工作态度(认真、一般、较差),工作量(饱满、一般、不够),每个任务能够独立(完成、基本完成、在辅导下完成),程序运行结果(正确、基本正确、部分正确),实训报告格式(标准、一般)。创新意识(较强、一般、没有),运行所学知识解决实际问题的能力(强、一般、较差)。
优(100~90):能够熟练运用开发工具,编程解决实际问题,创意新颖,功能实现完善。
良(89~80):能够熟练运用开发工具,编程解决实际问题,有一定创新,功能实现较好。
中(79~70):能够较熟练使用开发工具,编程解决实际问题,独立完成实训,功能实现一般。
及格(69~60):能够运用开发工具,在教师辅导下完成实训,实现部分功能。 不及格(59~0):编程解决实际问题的能力差,功能实现较差。
实训成绩为: 分 教师签字: