数据库实训报告_第1页
数据库实训报告_第2页
数据库实训报告_第3页
数据库实训报告_第4页
数据库实训报告_第5页
已阅读5页,还剩41页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库实训报告数 据 库 实 训 报 告 班级:111111班 学号:1111111 姓名:* 建立数据库上面的操作是建立数据库,所建立的数据库名字mingzhu存放在D盘的mingzhu文件夹里。实验一实验名称:是否可以用=取代 LIKE谓词,是否可以用!= 取代NOT LIKE 谓词。1、,用LIKE谓词。2、 LIKE后面的匹配串不含通配符时,在条件中用“=”替换LIKE。3、 LIKE后面的匹配串不含通配符时,用“!=”替换“NO LIKE” 实验结果及结论: LIKE后面的匹配串不含通配符时,Sno LIKE95001和Sno=95001这两个条件都可以搜到学号为95001的学生信息

2、,所以LIKE后面的匹配串不含通配符LIKE谓词可以用=取代,但是,当LIKE后用通配符时Sname=刘%会出现错误,说明LIKE后面有通配符时不能用=取代LIKE谓词。 实验结果及其结论: LIKE后面的匹配串不含通配符时,Sno NOT LIKE95001和Sno!=95001这两个条件都可以搜到学号不为95001的学生信息,所以LIKE后面的匹配串不含通配符LIKE谓词可以用!=取代。实验二实验名称:验证“_ _”表示一个字符还是两个字节。实验结果及结论:通过这两个图可以看出一个_不能表示一个字节,两个_表示一个字符,而不是两个字节第二个图中AB表示 的是一个字符 不是两个字节。实验三实

3、验名称 :验证“=”代替LIKE是否可以。实验结果及结论:从图中可以看出 当用“=”代替LIKE时会出现语法错误。这说明“=”不能代替LIKE。不仅得不到想要的结果,而且语法也不正确。实验四实验名称: escape中能否用其他符号代替?实验分析: 通过上面的操作查不到想要的结果,这说明把它们添加到课程号中 它们就成为了课程号的一 部分,而课程号中的“_”依然表示了通配符的意义。实验结果及结论: 在实验中不管是用“#”、汉字还是数字都不能代替,虽然用“#”、汉字和数字替代“”时不会出现语法错误,但是查找不到结果。 实验五实验名称:验证空值“IS NULL”是否可以用“=”、和空格替代,“!=”替

4、代“NOT NULL”。1、用“=空格”替代“NULL”实验结果及其结论:通过上面的操作没有查到成绩为空的同学的信息,说明“ISNULL”不能用“空格”替代。、用“!=”替代“NOT NULL”。实验结果及其结论:通过上面的操作可以查到成绩不为空的同学的信息,说明“!=”替代“NOT NULL”。实验六实验名称:验证空值在排序(升序和降序)时排前面还是排后面。 1、 在降序排列中。实验结果及其结论:上面的操作是成绩根据降序来排列。在降序排列时,成绩为空值的一条元组排在后面。2、在升序排列中。实验结果及其结论:上面的操作是成绩根据升序来排列。在升序排列时,成绩为空值的一条元组排在最前面。实验七实

5、验名称:尝试用处了 not exists以外的方法查询没有选修一号课程的学生姓名。1、上图是用not exists谓词来查询没有选修一号课程的学生姓名。所得出的结果。2、下面这个图中的操作是一个错误的方法实验错误分析: 上面这个方法是错误的,因为谓词like是用来进行字符串的匹配,只支持字符串的查询,在这个语句中 like后面添加的是嵌套语句。所以语法不正确。在做实验之前没有慎重考虑这个问题。这是一个严重的失误!3、 下面的方法是通过条件选择来查找。实验错误分析:用上面这个方法 得出的结果是错误的。因为选一号选修课的学生同时也选了其他的选修课。这个方法是查询了没选一号选修课的学生姓名,但是当选

6、修课号同时时一号和其他号时,也会被查询到。所以用这种方法不能得到我们想要的结果。因此 这种方法也是错误的!结论:这两种方法都不能达到目的,我想还有其他的方法可以实现这个查询,有待于进一步的思考和探究。实验八实验名称:关于插入时属性为空的情况有几种。1、 插入NULL 实验结果及其结论: 在上面操作中 直接插入学号为95007的学生课程号为空(null)。这是一种最易于理解的方法,也是最常见的方法。2、 把插入控制的对应位置空出来不赋值。完成这个操作后SC表的变化如下:实验结果及其结论:在SC表中插入了学号为95006 课程号为空的学生信息。这说明这种方法是对的。分析:在添加属性数据时 ,若不添

7、加该项数据则该项数据默认为空。总结:目前我能想出的就这两种,估计应该是有这两种吧。实验九实验名称:验证下面的一段代码是否能实现. 源代码: update SC Set Grade=0 Where Sdept=CS and Student.Sno=SC.Sno代码分析:这段代码的目的是把SC表中 CS系且和Student表中的学号相同的学生的成绩设置为0。实验结果及其结论: 上面的代码不能实现,错误是:列前缀Student与查询中所用的表名或列名不匹配。因为查询、修改的是SC表,没有Student表 ,所以不能实现。实验十实验名称:对于下面两种方法新建的视图,进行添加、修改、删除条元组,能否得到

8、相同的结果?表1 第一种方法。、表2 第二种方法1、 在第一种方法中,修改一个学号为95002 姓名是为“阿狸”。得到视图的变化:在第二种方法中进行同样的修改,的到如下表实验结果及其结论: 两种方法所建立的视图修改一条元组时得到了同样的结果,说明第二种方法和第一种方法都可以进行修改操作。2、在第一种方法建立的视图中删除一条元组的操作如下:操作后得到的结果如下:从视图的变化可以看出可以进行删除操作。第二种方法所建立的视图中删除一条元组: 得到的视图如下:实验果及其结论: 上面的操作说明了这两个视图都可以进行删除一天元组的操作。3在第一种方法所建立的视图中插入一条元组。得到的视图中没有这项数据,但

9、是在基本表中显示这条元组。在第二种方法所建立的视图中插入数据如下:实验分析:在这个视图中不能插入这项元组,因为在建表时的语句:“with check option”的作用是限制条件为系别是“IS”,所以在添加数据时只能添加IS系的,上面这条元组就不能添加。但是上面出现的错误是因为进行了重复操作。实验结果及其结论: 所建立的第一个视图和第二个视图的区别在于第一个视图没有添加任何限制,第二个视图添加了限制,它们都能进行修改、删除操作,但是添加限制后不能进行添加数据因为有条件限制。实验十一实验名称:尝试创建一个不含主键的视图,并对该视图添加、修改、删除一条元组,看视图有什么变化及其产生这种变化的原因

10、。1、首先创建一个不含主键的视图:上面创建的视图含有年龄、姓名、系别三个属性并且都不是主键。所得到的视图如下:2、 插入一条元组 不能进行插入插入数据。原因:视图中没有主键,当插入一条元组时 相当于插入的主键为空 值,而主键不允许为空,所以不能进行插入信息。3、 删除一条元组进行删除操作后视图变化: 视图中张立被删除。所以视图可以进行删除操作。原因:因为在删除时,只要是符合要删除的元组的条件的元组都会被删除掉。4、 修改一条元组。把年龄为20岁的学生姓名都改成刘毅。得到的视图如下: 从视图变化可以看出,视图可以进行修改操作。原因:因为在修改时,只要是符合要修改的元组的条件的元组都会被修改。实验

11、结果及结论:不含主键的视图可以修改或删除符合条件的元组,但是不能添加一条元组,因为视图不含主键,在添加元组时,主键默认为空值,而主键不能为空所以不能添加元组。错误实验:下面是对实验是十一 一开始的错误想法,一开始思路是:创建无主键的视图首先建立一个无主键的基本表 在这个表的基础上所建立的视图就是无主见的。根据这种方法做完这个实验发现 不知道实验的目的所在,这个实验也就没有任何意义。这个错误给我的启发是:做实验时思路很重要,一定要多思考,理清思路。在做实验之前 要在脑海里有这个实验的框架及其实验步骤!一定要慎重!错误代码如下:实验十二实验名称:创建一个class表对其添加至少两个属性(class

12、no,counter),通过alter table 给student表添加属性classno,通过alter table 给student表添加外键classno,再给student表和class表添加数据。1、创建一个class表主键为classno。创建成功!2、通过alter table 给student表添加属性classno注意!下面出现的错误是因为执行了两次,不小心多点了一次执行造成的,但是属性已经添加到Student表中。3、通过alter table 给student表添加外键classno得到的表变化如下:4、向student表和class表添加数据如下: Class表只显示

13、了部分操作给student表添加数据如下得到student表变化如下:实验十三实验名称:创建一个AFTER触发器,要求当插入一条新生记录时,相应在班级表中人数自动加一,当删除一条新生记录时,相应的在班级表中人数自动减一。这个实验是在实验十二的基础上做的1、 创建触发器2、 激活触发器(插入一条新数据)实验分析:上面的操作是把学号为95006的111003班的学生班级号设为111002 则 111002班多一个学生111003班少一个学生下面是触发器的出发如下: 原来111002班有2人111003班有3人 ;触发后111002班人数是3,111003班人数为2实验十四实验名称:验证一个SC1表

14、去参照Student表加数据去删除SC1的学号,查看SC1表的变化。1、 建立一个SC1表参照Student表的Sno,参照Course表的Cno两个属性,在SC1表中Sno和Cno为外键。得到SC1表如下:2、 给SC1表添加数据如下:得到SC1表如下:删除Student表的一条元组,观察SC1表的变化。删除后Student表变化如下:学号为95001的一条元组被删除。SC1表的变化如下:实验结果及其结论:SC1表中学号和Student表中所删除的学号一致的一条元组也随即被删除。2、 修改Student表中的信息,观察SC1表的变化。Student表变化:SC1表的变化: 实验结果及其结论: SC1表中的学号为95003的学生学号随着Student表的修改学号也修改为95010。3、删除Course表中的一条元组,观察SC1表的变化。实验结果及其结论:不能删除Course表的课程号为3的元组,因为delete语句与column reference 约束FK-SC1-Cno-49C3F6B7冲突。在建立SC1表的时候,“on delete no action”作用是当删除Course表中的元组造成了与SC1表不一致时拒绝删除,所以不能进行删除。4、 修改Course表中的一条元组如下:观察SC1表的变化: 实验结果及其结论: SC1表中的Con随着C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论