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

下载本文档

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

文档简介

1、2数据更新实验、实验的:(1)理解和掌握数据库更新操作,能够使SQL语句对数据库进数据的插、修改、删除操作。(2)掌握SQL语句常见语法错误的调试法。、实验内容:按照下列要求操作,并截取相应的结果图1、教材79-80页三张表student、course、sc中数据输由于学的学号收到完整性约束,Sno为主码,所以Sno的值唯,不可重复。在实际操作时学号为201215120重复,出现了以下错误提:改正后输出的表为:Course表为:SC表为:2、按照教材3.5数据更新中例3.69例3.78的要求操作3.5.1 插数据1.插元组【例3.69】 将个新学元组(学号:201215128,姓名:秦可卿,性

2、别:,所在系:IS,年龄18岁)插到student表中。在student表的定义中,属性列的顺序是Sno,Sname,Ssex,Sdept,Sage。新增的属性列的顺序可以与表定义中的顺序不样,如Sno,Sname,Ssex,Sage,Sdept。但值应该要与新增属性列相对应。 student表插前:插语句:插后:【例3.70】将学史湘云的信息插到student表中插语句:into句中只指出了表名,没有指出属性名,这表新元组要在表的所有属性列上都指定值,且属性列的次序与表定义中的次序相同。 插前:插后:【例3.71】插条选课记录(201215128,1)。插语句为:关系数据库管理系统将在新插记

3、录的Grade列上动的赋空值。 插前:插后,学号为201215128的成绩为null:也可以下的插语句:因为没有指出SC的属性名,在Grade列上要明确给出空值。 插后,学号为201215126的元组与学号为201215128的元组类似。2.插查询结果【例3.72】对每个系,求学的平均年龄,并把结果存数据库先在数据库中建个新表,其中列存放系名,另列存放相应的学的平均年龄。代码如下:执结果为:然后对student表按系分组求平均年龄,再把系名和平均年龄存新表中。代码如下:执结果为:关系数据库管理系统在执插语句时,会检查所插元组是否破坏表上已定义的完整性规则。3.5.2 修改数据1.修改某个元组的

4、值【例3.73】将学201215121的年龄改为22岁。代码为:修改的元组需满WHERE句的条件,即学的学号为201215121。 SET句给出的表达式的值于取代相应的属性列值,即年龄22岁取代17岁。 修改前:修改后:2.修改多个元组的值【例3.74】将所有学的年龄增加1岁。代码为:此代码省略了where句,表要修改表中的所有元组。 修改前:修改后:3.带查询的修改语句【例3.75】将计算机科学系全体学的成绩置零。代码为:查询语句也可嵌套在UPDATE语句中,以构造修改的条件。 从学表中找出系为CS的学的学号,在到SC表中找到满学号的元组,将元组中的Grade置为0。系为CS的学的学号为20

5、1215120、201215121、201215126 修改前SC表:修改后SC表:3.5.3删除数据【例3.76】删除学号为201215128的学记录。删除语句为:delete语句的功能是从指定表中删除满where句条件的所有元组。 但直接删除会出现如下错误提:是因为删除操作破坏了参照完整性,所以要先把其他信息删除。 删除前:删除后:2.删除多个元组的值【例3.77】删除所有的学选课记录。删除语句为:此语句省略where句则表删除表中全部元组,但表的定义仍在字典中。也就是说,delete语句删除的是表中的数据,不是关于表的定义。 删除前:删除后:3.带查询的删除语句【例3.78】删除计算机科

6、学系所有学的选课记录。删除语句为:查询同样也可以嵌套在delete语句中,以构造执删除操作的条件。 在student表中,计算机科学系的学的学号分别为201215120、201215121和201215126。删除前:删除后:3.教材70页习题6中SPJ数据库的创建,并在该数据库中创建S、P、J、SPJ四个表,再参照71页各表的数据输记录供应商表S代码:供应商表S执结果:零件表P代码:零件表P执结果:程项表J代码:程项表J执结果:供应情况表SPJ代码:供应情况表SPJ执结果:4、分别建三个带各种约束(PRIMARY KEY、FOREIGN KEY 、NOT NULL、UNIQUE、CHECK)

7、的表student1、course1、sc1,和不带以上任何约束的表student2、course2、sc2,输测试数据,验证数据的完整性约束,并截取结果图进分析。PRIMARY KEY: 在student1表中,使Sno受到PRIMARY KEY的约束,代码如下:在student1中插两条元组,当两条元组的Sno同为201215120时,执会出现错误警告:改为两个不同的学号后,插成功:在student2表中,Sno不受任何约束,代码如下:同样插两条学号相同的数据时,可以成功插:UNIQUE:在student1表中,使Sname受到UNIQUE约束,即Sname必须取唯值,插以下语句:两条元组

8、的Sname同为花袭,执时出现错误提:在student2表中,Sname不受到任何约束,插相同的语句,可以成功插:CHECK:在student1表中,Sage受到Sage15并且Sage20的约束。学号为201215126的同学的年龄为14岁,不在约束的范围内,所以执时会出现错误提:同理,学号为201215128的同学的年龄为21岁,也不在约束范围内,也会出现错误提:在student2中,Sage不受CHECK的约束,所以在插年龄为14岁和21岁同学的信息时,不会出现错误提,可以插成功:NULL:在course1表中,Cname不能取空值,在插的元组Cname中值为null,执时会出现错误提:

9、FOREIGN KEY:表sc1的Sno和Cno是外码:删除student1中学号为201215120的学的信息时,会出现错误:同样,在删除course1中课程号为1的信息时,也会出现错误:在sc2表中,Sno和Cno不是外码,在删除student2中学号为201215120的学的信息时,可成功删除:但sc2表中学号为201215120的信息不因student2中信息的删除缺少信息。但sc2表中学号为201215120的信息不因student2中信息的删除缺少信息。同样在course2中删除课程号为1的信息时,可成功删除:sc2表不受影响:SQL代码:( Sno char(9) PRIMARY

10、, 列级完整性约束条件,Sno是主码*/Sname char(20) , /*Sname取唯值*/Ssex char(2),Sage SMALLINT,Sdept char(20);create table Course( Cno char(4) PRIMARY, 列级完整性约束条件,Cno是主码*/Cname char(40) NOT NULL, 列级完整性约束条件,Cname不能取空值*/Cpno char(4),/*Cpno的含义是先修课*/Ccredit SMALLINT,FOREIGN KEY(Cpno) REFERENCESCourse(Cno)表级完整性约束条件,Cpno是外码,

11、被参照表是Course,被参照列是Cno*/);insert into Coursevalues (1,5,4),(2,null,2),(3,1,4),(4,6,3),(5,7,4),(6,null,2),(7,6,4)select *from Coursecreate table SC(Sno char(9),Cno char(4),PRIMARY(Sno,Cno), /FOREIGN KEY(Sno) REFERENCESstudent(Sno),表级完整性约束条件,Sno是外码,被参照表是student*/FOREIGN KEY(Cno) REFERENCESCourse(Cno)表级完

12、整性约束条件,Cno是外码,被参照表是Course*/);insert into SCvalues (201215126,18,CS);insertupdate studentset Sage22where Sno=201215121;select from student;update Studentset SageSage1;update SCset Grade =0where Sno IN(Select Sno from student where Sdept=CS);SELECTFROM SCdelete from student where Sno=201215128;( Sno c

13、har(9) PRIMARY, 列级完整性约束条件,Sno是主码*/Sname char(20) , /*Sname取唯值*/values (201215126,14,CS),(201215128,21,IS)( Cno char(4) PRIMARY, 列级完整性约束条件,Cno是主码*/Cname char(40) NOT NULL, 列级完整性约束条件,Cname不能取空值*/Cpno char(4),/*Cpno的含义是先修课*/Ccredit SMALLINT,FOREIGN KEY(Cpno) REFERENCEScourse1(Cno)表级完整性约束条件,Cpno是外码,被参照表

14、是course1,被参照列是Cno*/);select *from course1create table sc1(Sno char(9),Cno char(4),Grade SMALLINT,PRIMARY(Sno,Cno), /FOREIGN KEY(Sno) REFERENCESstudent1(Sno),表级完整性约束条件,Sno是外码,被参照表是student*/FOREIGN KEY(Cno) REFERENCEScourse1(Cno)表级完整性约束条件,Cno是外码,被参照表是Course*/);insertinto student2values (201215126,14,CS),(201215128,21,

温馨提示

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

评论

0/150

提交评论