西华大学数据库实验报告(五)
西华大学数据库实验报告

第2次作业一、环境运行SQL Server,并创建名为student数据库二、实训内容1. 使用企业管理器创建“学生信息”表。
并插入学生数据。
“学生信息”表的结构“学生信息”表记录的数据use student -- 调用数据库gocreate table 学生信息_蒲强林-- 创建表(学号char ( 7) primary key,姓名char ( 20) not null,性别char ( 2),年龄int ,所在系char (15))gouse student -- 调用数据库go-- 插入数据insert学生信息_ 蒲强林values( '9056215' ,'赵燕' ,' 女',20,' 计算机系' )学生信息_ 蒲强林insertvalues( '9056219' ,'李勇' ,' 男',21,' 计算机系' ) insert学生信息_ 蒲强林values( '9057123' ,'张辉' ,' 男',19,' 管理系' ) insert学生信息_ 蒲强林values( '9057436' ,'王鹏' ,' 男',17,' 管理系' ) insert学生信息_ 蒲强林values( '9056213' ,'李静' ,' 女',21,' 计算机系' )go结果截图:海孚静支219056215女209056219李勇21905712319営理垂9O5743S17NUU.NULL NULL NULL NULL使用SQL语言编程序实现:()在“学生信息”表中添加“电话”、“电子邮箱”字段,类型分别为定长字符(11长度)、可变字符型(40长度),允许为空use student --调用数据库goalter table 学生信息—蒲强林add 电话char (11)alter table 学生信息—蒲强林add 电子邮箱varchar (40) go 运行结果截图: --添加属性--添加属性允许Null值char(7)□註名charro)□mu char(2) 回年龄int所在垂chorCIS)char(11)0varchar(40) 巫()将“性别”字段的类型改为不允许为空use student go--修改字段alter table 学生信息—蒲强林alter column 性别char (2) not nullgo()将“学生信息”表中的“电子邮箱”字段名改为email地址”运行结果截图:允许Null ®chjr(7)□chan(20]□出前⑵□年諛irrt0所在至char(15)0char(11}0电子昨varcharf^)0□use student goexec sp_rename '学生信息—蒲强林.电子邮箱','email地址','column'gochar(7]匚har[2O]□tesy chart 2]□HintHchart 19电话char{11)T凰emailitSJlt va rcha r(40^H□()删除“学生信息”表中的“email地址”字段use student goalter table 学生信息—蒲强林drop column email 地址go运行结果截图:列名允嘗NulKE9S chsr(7)□姓客ch3n(20}□mu char(2)□年龄int0所在至char(15)0电话thar<11)0()试图删除“学生信息”表中的“学号”字段,出现什么情况为什么use studentgoalter table 学生信息—蒲强林drop column 学号go运行结果截图:氐消息消息閔7L级别⑹状恣1,审行对象PR_学生僖息竟强林_1口魏测取M&T依棘于列学号。
数据库实训报告实验总结

一、实验背景随着信息化时代的到来,数据库技术已成为当今社会的重要技术之一。
为了提高我国高校学生的实践能力,培养适应社会发展需求的数据库技术人才,我校组织了数据库实训课程。
通过本次实训,使学生们能够掌握数据库的基本原理、设计方法和应用技术,提高解决实际问题的能力。
二、实验目的1. 理解数据库的基本概念和原理;2. 掌握数据库的设计方法和步骤;3. 学会使用数据库管理系统进行数据库的创建、修改和查询;4. 培养学生分析问题、解决问题的能力;5. 提高学生的团队合作意识和沟通能力。
三、实验内容本次数据库实训主要包括以下内容:1. 数据库基本概念:数据库、数据库系统、数据库管理系统等;2. 关系数据库:关系模型、关系代数、关系运算等;3. SQL语言:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)等;4. 数据库设计:需求分析、概念结构设计、逻辑结构设计、物理结构设计等;5. 数据库实现:使用数据库管理系统进行数据库的创建、修改和查询;6. 数据库应用:使用数据库技术解决实际问题。
四、实验过程1. 需求分析:根据实训要求,分析数据库所需解决的问题,确定数据库的功能和性能指标;2. 概念结构设计:根据需求分析,设计数据库的概念结构,包括实体、属性和实体间的关系;3. 逻辑结构设计:将概念结构转换为逻辑结构,包括确定表结构、字段类型、约束条件等;4. 物理结构设计:根据逻辑结构设计,确定数据库的物理存储方式,包括数据文件、索引文件等;5. 数据库创建:使用数据库管理系统创建数据库,包括创建表、索引、视图等;6. 数据操作:使用SQL语言进行数据插入、删除、更新和查询等操作;7. 数据库应用:使用数据库技术解决实际问题,如数据备份、恢复、安全等。
五、实验总结1. 理论与实践相结合:本次实训使我深刻认识到,数据库技术不仅包括理论知识,还需要将理论应用于实践,解决实际问题;2. 数据库设计的重要性:数据库设计是数据库应用的基础,一个良好的数据库设计可以提高数据库的性能和可用性;3. SQL语言的应用:SQL语言是数据库操作的核心,熟练掌握SQL语言可以提高数据库操作效率;4. 团队合作与沟通:在实训过程中,与团队成员密切配合,共同完成任务,提高了我的团队合作意识和沟通能力;5. 实验心得:通过本次实训,我对数据库技术有了更深入的了解,掌握了数据库的基本原理、设计方法和应用技术,为今后的学习和工作打下了坚实的基础。
数据库完整性实验总结(必备6篇)

数据库完整性实验总结第1篇时间流水,短短的两周就流逝了,回想在这两周的实训生活,我从单一,片面的学习进入了全面,系统的学习,学好它更是一项大任务。
而对于如何学好它,光靠理论知识是远远不够的,_同志曾经就说过“实践是检验真理的唯一标准”!正如大师傅炒菜,知道炒菜的程序,主料、调料一清二楚,不真正掌勺,永远也成不了“大厨”。
而学校给我们提供了这样一个机会,让我们自己_掌勺_,使我们从实践中,加深了对数据库的理解。
经过这次的实训,我们对数据库有了更深的了解,从书面的明白到实践的理解,接触到了自己以前没有接触到的东西,并让我加深了数据库知识的学习和理解,也使我进一步了解数据库,这次实训可以为我们以后真正的实际数据库系统设计提供很好的借鉴。
更使我明白遇到什么挫折,不气馁,不放弃,勇于探索,才会让自己离成功越来越近!俗话说:知之为知之,不知为不知!不要不懂装懂,有什么不懂的要敢于向_知之者_请教!知识是慢慢积累而成的,我们学习不仅要学习理论知识,而实践也是非常重要的,只有当两者结合,才会获得收获!我们这次实习对我们的认识起到了很大的启发作用,使我们以后在接触数据库的过程中少走点弯路。
也使我们对人生和社会有了更清楚的认识,任何的成功都有艰辛和汗水铺出来的,没有那么多的意外收获。
我们要学的还有很多,要接触的还不知道有多少,以后的路还很漫长,我相信我会更加努力的,把握现在,为自己的未来而奋斗,展开双翅飞向美好的未来!在这里很感谢xxx老师给我们传授了这么多的知识和经验,让我们在毕业之际更好的填补自己的不足。
数据库完整性实验总结第2篇在学习《数据库原理及应用》这门课之前,就和课本上提到的一个观点一样,认为它只是存放数据的仓库而已,但是现在我深深体会到这个观点是多么的片面。
数据库是长期存储在计算机内,有组织、可共享的大量的数据集合,前者只能表达它的一方面而已。
数据库技术发展到今天已经是一门非常成熟的技术,它的技术水平、应用水平多比初始时都有了很大的改变,但是它的最基本的特征却没有变,概括起来有以下几个方面:第一点:数据库是相互关联的的数据集合;即在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的关系。
数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。
2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。
3,并且这次实习可以非常好的关心我完成将来的毕业论文。
四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。
然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。
同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。
使我们队公司有了更进一步的了解实习,就是在实践中学习。
经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。
当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。
还有发布了一些关于公司产品的博客,比如新浪,网易。
而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。
经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。
数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。
实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。
虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。
数据库实验实训报告范文

一、实验背景与目的随着信息技术的飞速发展,数据库技术在各行各业中的应用越来越广泛。
为了使同学们更好地掌握数据库的基本原理、设计方法和应用技术,提高动手能力,本次实验实训旨在通过一系列的数据库实验,使同学们熟悉数据库管理系统的使用,掌握数据库设计、创建、查询、维护等基本操作,提高数据库应用能力。
二、实验环境与工具1. 实验环境:Windows 10操作系统,SQL Server 2019数据库管理系统。
2. 实验工具:SQL Server Management Studio(SSMS)。
三、实验内容与步骤1. 数据库设计(1)分析业务需求:根据实验要求,设计一个学生信息管理系统,包含学生、课程、成绩等实体。
(2)确定实体关系:分析实体之间的联系,确定实体之间的关系,如一对多、多对多等。
(3)设计数据表结构:根据实体关系,设计数据表结构,包括字段名、数据类型、约束等。
2. 数据库创建(1)创建数据库:使用SSMS连接到本地SQL Server实例,创建一个新的数据库。
(2)创建数据表:在数据库中创建学生、课程、成绩等数据表,并设置相应的字段和约束。
3. 数据插入与查询(1)插入数据:向数据表中插入数据,包括学生信息、课程信息、成绩信息等。
(2)查询数据:使用SELECT语句进行数据查询,包括简单查询、条件查询、连接查询等。
4. 数据更新与删除(1)更新数据:使用UPDATE语句更新数据表中指定的记录。
(2)删除数据:使用DELETE语句删除数据表中指定的记录。
5. 视图与存储过程(1)创建视图:根据实际需求,创建视图,简化查询操作。
(2)创建存储过程:编写存储过程,实现数据的批量插入、更新、删除等操作。
四、实验结果与分析1. 数据库设计本次实验中,我们成功设计了一个学生信息管理系统,包括学生、课程、成绩等实体,并确定了实体之间的关系。
数据表结构设计合理,满足业务需求。
2. 数据库创建成功创建了数据库和数据表,并设置了相应的字段和约束。
数据库实验报告

数据库实验报告1. 概述在本次数据库实验中,我选择了设计和实现一个学生信息管理系统的任务。
该系统旨在提供一个方便、高效的平台,用于管理学生的基本信息、课程成绩以及相关的学籍信息等。
本实验报告将详细介绍实验的目的、设计思路和实施过程,并对结果进行分析和讨论。
2. 实验目的本实验的主要目的是通过实际操作,熟悉和掌握数据库的基本概念、设计方法和实施技巧。
通过这个实验,我将学会使用数据库管理系统(DBMS)工具创建关系型数据库,设计并创建合适的表结构,实施数据的插入、更新和删除,同时也能进行简单的查询和数据分析。
3. 设计思路为了满足学生信息管理系统的功能需求,我设计了以下几个表结构:- 学生表(Students):包含学生的基本信息,如学号、姓名、性别、年龄等;- 课程表(Courses):包含课程的基本信息,如课程号、课程名称、教师等;- 成绩表(Grades):记录学生课程的成绩信息,包括学号、课程号、成绩等;- 学籍表(Enrollment):记录学生的学籍信息,如入学时间、学历、班级等。
为了保证数据的完整性和准确性,我为每一个表设置了主键和外键。
在学生表中,学号字段被设定为主键,而在成绩表和学籍表中,学号字段被设定为外键,与学生表建立关联。
同样地,课程表和成绩表之间也建立了课程号字段的关联。
4. 实施过程在开始实施前,我首先下载并安装了一个流行的数据库管理系统,如MySQL作为本次实验的工具。
接下来,我打开MySQL控制台,并创建了一个新的数据库,命名为"StudentDB"。
随后,我运行一系列的SQL命令,创建了上述所述的各个表,并为每一个表添加了合适的字段和约束。
在创建表结构之后,我利用INSERT INTO语句插入了一些样本数据,以便后续的操作和查询。
5. 结果分析经过一段时间的设计和实施,我成功地创建了一个学生信息管理系统的数据库,并成功地插入了样本数据。
通过对数据库的操作,我能够进行简单的查询和数据分析。
数据库实验报告五

数据库实验报告五一、实验目的本次数据库实验的目的在于深入了解和掌握数据库的相关操作和应用,通过实际操作提高对数据库原理的理解和运用能力,培养解决实际问题的思维和方法。
二、实验环境本次实验使用的数据库管理系统为_____,操作系统为_____,实验所使用的计算机配置为_____。
三、实验内容1、数据库的创建使用相应的命令和工具创建了一个名为_____的数据库,并设置了合适的字符集和校对规则,以满足数据存储和处理的需求。
2、表的设计与创建在创建的数据库中,设计并创建了多个表,包括_____表、_____表和_____表等。
在表的设计过程中,仔细考虑了字段的数据类型、长度、是否允许为空等属性,以确保数据的完整性和准确性。
例如,在_____表中,设置了_____字段为整数类型,用于存储_____信息;_____字段为字符串类型,长度为_____,用于存储_____信息。
同时,为了保证数据的一致性,设置了主键和外键约束。
3、数据的插入通过编写 SQL 语句,向创建的表中插入了大量的测试数据。
在数据插入过程中,注意了数据的合法性和有效性,避免了插入错误或不完整的数据。
4、数据的查询使用各种查询语句对插入的数据进行查询操作,包括简单查询、条件查询、连接查询、分组查询和排序查询等。
通过这些查询操作,熟练掌握了 SQL 语言中查询语句的语法和用法,能够根据不同的需求准确地获取所需的数据。
例如,使用简单查询语句获取了_____表中所有的记录;使用条件查询语句获取了满足特定条件(如_____)的记录;使用连接查询语句将多个表中的相关数据进行关联查询,获取了更全面的信息。
5、数据的更新与删除对表中的数据进行了更新和删除操作,以模拟实际应用中的数据修改和清理需求。
在更新和删除数据时,特别注意了操作的条件和范围,避免了误操作导致数据的丢失或错误。
四、实验中遇到的问题及解决方法1、数据类型不匹配问题在插入数据时,由于对某些字段的数据类型理解不准确,导致出现数据类型不匹配的错误。
数据库实验报告五

select @stuavg //看结果
(3)在pubs数据库中建立一个存储过程,用于检索数据库中某一价位的图书信息。参数有两个,用于指定图书价格的上下限。如果找到满足条件的图书,则返回0,否则返回1。执行结果如图五所示:
实验地点:软件实验室一时间:2015年12月10日
1、实验目的:
掌握用户存储过程的创建,了解一些常用的系统存储过程,以及调用和删除过程,并熟悉使用存储过程来进行数据库应用程序的设计。
二、实验内容:
(1)基于学生—课程数据库创建一存储过程,用于检索数据库中某个专业学生的人数,带有一个输入参数,用于指定专业。执行结果如图二所示:
as select @stu_avg = avg(grade) //将平均值给了变量
from student,sc where student. sno = sc. sno andstudent.sno=@stu_sno
1.存储过程的执行
declare @stuavg float //用于存放输出变量内容的
(2)基于学生-课程数据库创建一存储过程,该过程带有一个输入参数,一个输出参数。其中输入参数用于指定学生的学号,输出参数用于返回学生的平均成绩。执行结果如图四所示:
create procedure pro_stu @stu_sno char(6),@stu_avg float output //这个带output的是输出参数
return 0
else
return 1
(4)存储过程的执行
(5)存储过程的删除。执行结果如图七所示:
3、实验数据(或者实验结果):
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5次作业
——事务、游标、自定义函数
一、环境
运行SQL Server,并已经创建名为student数据库、“学生信息”表、“课程”表、“学生成绩”表。
二、实训内容
1、事务
(1)Alice和Bob分别有银行账号A、B,分别用表a、表b表示,这2个表都只有1个字段amount,表示余额。
现在需要从Alice向Bob转账制定金额,要求转账过程中不能出现错误,而且不管转账是否成功,都扣除Alice账号1元钱的手续费。
(2)amount字段上的约束条件是余额不能小于0
declare@xmoney money,@err1int,@err2int
set@xmoney= 300 --指定转账金额为300
begin transaction
update A
set amount=amount- 1 --扣除手续费
set@err1=@err1+@@ERROR--记录上述update可能出现的错误
save transaction transfer--设置保存点transfer
update A
set amount=amount-@xmoney--从账号A中扣除金额
set@err2=@err2+@@ERROR--记录上述update可能出错的情况
update B
set amount=amount+@xmoney--想账号B中转入金额
set@err2=@err2+@@error
if@err1!= 0 --如果扣除手续费出现错误
begin
rollback transaction
print'所有操作失败'
end
else begin
if@err2!= 0 --如果转账过程出现错误
begin
rollback transaction transfer--回滚到保存点transfer处
print'转账失败,但手续费已扣'
end
else begin
commit transaction--所有操作成功,提交事务
print'转账成功'
end
end
go
2、自定义函数
(1)在student数据库中,创建标量函数,统计“课程”表中总共有多少
条门课程,写出程序代码。
要求:在建立函数之前,为排除重名函数,先判断要创建的函数是否存在,如果存在则先删除。
if exists(select name from sysobjects where name='Ccount'and type='FN')
drop function ount
go
create function ount()
returns int
as
begin
declare@num int
set@num= 0
select@num=count(*)
from学生课程_蒲强林
return@num
end
go
-- 调用函数查询
use student
go
declare@num int
set@num= 0
set@num=ount()
print'课程表中总共有:'+cast(@num as char(1))+'门课程'
go
运行结果截图:
(2)在student数据库中,创建内嵌表值函数,该函数给出制定学生所选修课程记录,即“学号”作为输入参数,写出程序代码。
if exists(select name from sysobjects where name='Cchoose'and type='FN')
drop function hoose
go
create function hoose(@Cname as nvarchar(20))
returns table
as
return (select a.学号
from学生成绩_蒲强林a,学生课程_蒲强林b
where a.课程号=b.课程号and b.课程名称=@Cname)
go
-- 调用函数查询选修C语言情况
use student
go
declare@Cname nvarchar(20)
set@Cname='C语言'
select*
from hoose(@Cname)
go
运行结果截图:
(3)在student数据库中,创建多语句表值函数,该函数可以查询某门课
程的选修情况,该函数接收输入的“课程名称”,通过查询“课程”表和“学生成绩”表返回该课程的选修情况,写出程序代码。
if exists(select name from sysobjects where name='Cchoose1'and type='FN') drop function hoose1
go
create function hoose1(@Cname as nvarchar(20))
returns@Cchoosetable table (学号char(7))
as
begin
insert@Cchoosetable
select a.学号
from学生成绩_蒲强林a,学生课程_蒲强林b
where a.课程号=b.课程号and b.课程名称=@Cname
return
end
go
-- 调用函数查询学修C语言情况
use student
go
declare@Cname nvarchar(20)
set@Cname='C语言'
select*
from hoose1(@Cname)
go
运行结果截图:
3、游标
使用游标返回“课程”表中总共有多少条记录,并查询“课程”表中最后一条记录,将最后一条记录的“课程号”或者“课程名称”修改一下。
use student
go
declare cou_cur scroll cursor
for select*from学生课程_蒲强林
for update of课程名称,课程号
open cou_cur
declare@课程号char(7),@课程名称nvarchar(20),@学分char(15),@先修课程char(7) declare@counum smallint
set@counum= 0
if@@ERROR= 0
begin
fetch next from cou_cur into@课程号,@课程名称,@学分,@先修课程
while@@FETCH_STATUS= 0
begin
set@counum=@counum+1
fetch next from cou_cur into@课程号,@课程名称,@学分,@先修课程end
end
print'课程表中的课程总数为:'+cast(@counum as nchar(4))
fetch prior from cou_cur
update学生课程_蒲强林
set课程名称='windows高级编程技术'
where current of cou_cur
close cou_cur
deallocate cou_cur
go
运行结果截图:
修改后课程表截图:
三、实训小结
体会事务、自定义函数、游标的用途。
能够使用事务保证数据的完整性。
能够创建用户自定义函数,并较熟练的使用游标检索表中的数据。
灵活掌握流程控制语句,树立Transact-SQL程序设计的编程思想。