数据库实验报告【表数据的插入、修改和删除】

一、 实验目的及实验环境
(1) 掌握使用T-SQL语句和企业管理器对数据表进行插入数据操作
(2) 掌握使用T-SQL语句和企业管理器对数据表进行修改数据操作
(3) 掌握使用T-SQL语句和企业管理器对数据表进行删除数据操作
(4) 体会数据完整性约束的作用,加深对数据完整性及其约束的理解
通过本实验,要熟练掌握INSERT、UPDATE、DELETE语句的语法和使用方法

二、 实验内容及结果
-本次实验基于实验1所建的数据库和实验2所建的各表

在这里插入图片描述
使用T-SQL语句向数据库中的表输入一些(如10条)记录
在实验二里建立的Student表中有学生的学号、姓名、性别、年龄、电话号码以及其所在系(其中电话号码可以为空),基本语句格式为INSERT INTO<表名> VALUES(‘…’);
在这里插入图片描述

理解系统是如何保证完整性的?在这里插入其中任何一条记录,若其中某一个属性出现漏输入,或者是定义与原表定义大小形式有偏差,则在执行该程序时会报错。
注意:与需要插入的表要一一对应,若在此条记录中无所需要插入的数据且对应表允许NULL值,需要在VALUE语句对应位置写上NULL。
查看插入数据后表所含的所有数据
在资源管理器选择表,单击右键,点击选择前1000行,即可查看刚插入的一行记录。
在这里插入图片描述

使用企业管理器向数据库中的表输入一些(如10条)记录
若使用资源管理器插入一条记录,(这个前提是我们所需要插入的记录条数并不是特别多),在资源管理器中选择所需要插入记录的表格,单击右键,点击编辑前200行,插入记录对应数据即可。
在这里插入图片描述

理解系统是如何保证完整性的?在这里需要一行一行得把该行所有属性都填写完毕才能继续录入下一行信息。如上图,在我刚输入完980015后,我直接跳到下一行输入另外一个学生的信息,则会弹出窗口告知我无法执行此类操作,必须将上一个学号为“980015”的信息填写完毕才能填写下一行。

【使用上述两种语句共插入10条记录后结果如下】
在这里插入图片描述

使用T-SQL语句修改数据库中表的某些数据
① 对Student表修改,假定到了新的学期,我们需要将所有学生年龄加1。TSQL语句如下:
在这里插入图片描述

【基于上述Student表,执行上图语句后表中显示如下】
在这里插入图片描述

② 对SC表进行修改,在这里我们将所有计算机系的学生成绩置为0。TSQL语句如下:
在这里插入图片描述
【基于SC表,执行上图语句后表中显示如下】
在这里插入图片描述

在这里可能会发现只有前两行的学生的成绩置为了0,后面并未置为0,这实际上是我们要求将所有计算机系学生成绩置为0,而计算机系这一系别的属性需要从Student表中查找确认该学生是否为“CS”。在这里列出980012学号到980013到980016学生分别所在系别。
在这里插入图片描述

这就是为什么只有980012和980013学号的学生成绩被置为0而其他学生并未置0的原因了。

使用T-SQL语句删除数据库中表的某些数据
① 在这里我删除了所有选择02号课程的学生选课记录。即删除所有Cno=02的学生的记录,TSQL语句如下:
在这里插入图片描述

【基于上述定义好的SC表,执行上述语句后结果如下】
在这里插入图片描述

② 删除了所有计算机系学生选课成绩,这一步操作基于上一步操作之上。TSQL语句如下:
在这里插入图片描述

【基于上述定义好的Student表,通过找到所在系为CS的学生可以进行校验。执行上述语句后结果如下】

在这里插入图片描述

三、 非正常运行结果及原因
① 单纯按照书上的语句编写时候,一开始我理解的是电话号码可以为空则不需要填写任何东西,但执行了多次发现还是下图这个结果。询问老师后,发现即使所需要填写的属性为空,仍要填写NULL表示此属性为空。否则就与定义相违背了。
在这里插入图片描述

② 在修改数据时,所有学生年龄加1的操作时,一开始只是单纯按照书上的语句编写,则在还没执行时就出现红色波浪线。
在这里插入图片描述

这里出现的错误是,我们的Student表中对年龄的定义是Age而非Sage,若对Sage更改程序无法找到对应列,一定要根据定义表的年龄列名进行操作更改。

四、 对设计及调试过程的心得体会
在编写TSQL语句时,报错的情况我觉得和Python语句报错的这个逻辑是很相似的,但各自又有不同。在学习数据库时候,会更加通俗易懂一些,而之所以出错,通过仔细琢磨也可以琢磨出来,并能说出来为什么,这给了我很大的信心,以后的学习当中我将更加认真仔细,并要究其根本,明白为什么这么操作这才是良好的学习方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值