数据库系统概论实验报告..doc
数据库系统概论实验报告.数据库系统概论实验报告书专业班级学号姓名指导教师安徽工业大学计算机学院实验一:数据定义 / 数据操纵语言实验目的熟悉 Oracle 上机环境及 Oracle 客户端的配置; 熟练掌握和使用立、修改和删除数据库表、主键、外键约束关系和索引;熟练掌握和使用对数据进行增加、修改和删除操作。DDL语言, 建DML语言,实验内容1SQL 数据定义语句:例 1-1:(建立数据库表)建立教学数据库的四个数据库表,其中Student表中不包含SSE(C,2) 字段, Sname 字段为 Sname(C,8) 且可为空。例 1-2 : ( 修改数据库表 ) 在 Student 表中增加 SE(C,2) 字段。例 1-3 : ( 修改列名 ) 将 Student 表中列名 SE修改为 SSE。例 1-4 : ( 修改数据库表)将 Student 表中把 Sname 字段修改为Sname(C,10) 且为非空。例 1-5 :( 建立索引 ) 为 Score 表按课程号升序、 分数降序建立索引, 索引名为 SCGRADE。例 1-6 : ( 删除索引 ) 删除索引 SCGRADE。例 1-7 : ( 建立数据库表 ) 建立数据库表 S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。例 1-8 : ( 修改数据库表 ) 删除成绩表 Score 的参照完整性约束关系。例 1-9 : ( 修改数据库表 ) 添加成绩表 Score 的参照完整性约束关系。例 1-10 : ( 修改数据库表名 ) 将数据库表 S1 改名为 StudentTemp 。2 SQL数据操纵语句:例 2-1: ( 插入数据 ) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。例 2-2:( 多行插入 ) 将表 Student 中在计算机系 ( CS)的学生数据插入到表 StudentTemp中。例 2-3:( 利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表 StudentGr 中。例 2-4: ( 修改数据 ) 将 StudentTemp 表中所有学生的年龄加 2。例 2-5 :( 修改数据 ) 将 Course 表中 程序设计 课时数修改成与 数据结构 的课时数相同。例 2-6 :( 插入数据 ) 向 Score 表中插入数据( 98001, 001,95 ),根据返回信息解释其原因。例 2-7 : ( 插入数据 ) 向 Score 表中插入数据( 97001, 010, 80 ),根据返回信息解释其原因。例 2-8 : ( 删除数据 ) 删除 Student 表中学号为 96001的学生信息,根据返回信息解释其原因。例 2-9 : ( 删除数据 ) 删除 Course 表中课程号为 003的课程信息,根据返回信息解释其原因。例 2-10 : ( 删除数据 ) 删除学生表 StudentTemp 中学号以 96 打头的学生信息。例 2-11:(删除数据)删除数据库表StudentTemp 中所有学生的数据。例 2-12:( 删除表 )删除数据库表StudentTemp 和 StudentGr 。实验程序create table student(sno char(5) primary key,sname char(8),sdept char(2) not null,sclass char(2) not null,sage numer(2)create table course(cno char(3) primary key,cname char(16) unique,ctime numer(3)create table teach(tname char(8),tse char(2),cno char(3),tdate datetime,tdept char(2),primary key(tname,cno,tdept),foreign key(cno) references course(cno)create table score(sno char(5),cno char(3),score numer(5,2)primary key(sno,cno),foreign key(sno) references student(sno),foreign key(cno) references course(cno)alter table student add se char(2)sprename #;student.se#;,#;sse#;,#;column#;alter table student alter column sname char(10) not nullcreate unique inde scgrade on score(sno,score desc)drop inde score.scgradecreate table s1(sno char(5) primary key,sname char(8),sd char(2),sa numer(2)alter table score drop constraint fkscorestudentalter table score add constraint fkscorestudentforeign key (sno)references student(sno) on update cascade on delete cascadesprename #;s1#;,#;studenttemp#;insert into student values(#;96001#;,#;马小燕 #;,#;CS#;,#;01#;,21,#;女 #;);insert into student values(#;96002#;,#;黎明 #;,#;CS#;,#;01#;,18,#;男 #;);insert into student values(#;96003#;,#;刘东明 #;,#;MA#;,#;01#;,18,#;男 #;);insert into student values(#;96004#;,#;赵志勇 #;,#;IS#;,#;02#;,20,#;男 #;);insert into student values(#;97001#;,#;马蓉 #;,#;MA#;,#;02#;,19,#;女 #;);insert into student values(#;97002#;,#;李成功 #;,#;CS#;,#;01#;,20,#;男 #;);insert into student values(#;97003#;,#;黎明 #;,#;IS#;,#;03#;,19,#;女 #;);insert into student values(#;97004#;,#;李丽 #;,#;CS#;,#;02#;,19,#;女 #;);insert into student values(#;96005#;,#;司马志明 #;,#;CS#;,#;02#;,18,#;男 #;);insert into Course values(#;001#;,#;数学分析 #;,144);insert into Course values(#;002#;,#;普通物理 #;,144);insert into Course values(#;003#;,#;微机原理 #;,80);insert into course values(#;004#;,#;数据结构 #;,72);insert into course values(#;005#;,#;操作系统 #;,80);insert into course values(#;006#;,#;数据库原理 #;,80);insert into course values(#;007#;,#;编译原理 #;,60);insert into course values(#;008#;,#;程序设计 #;,40);insert into teach values(#;王成刚 #;,#;男 #;,#;004#;,#;1999.9.5#;,#;CS#;);insert into teach values(#;李正科 #;,#;男 #;,#;003#;,#;1999.9.5#;,#;CS#;);insert into teach values(#;严敏 #;,#;女 #;,#;001#;,#;1999.9.5#;,#;MA#;);insert into teach values(#;赵高 #;,#;男 #;,#;004#;,#;1999.9.5#;,#;MA#;);insert into teach values(#;刘玉兰 #;,#;女 #;,#;006#;,#;20.2.23#;,#;CS#;);insert into teach values(#;王成刚 #;,#;男 #;,#;004#;,#;20.2.23#;,#;IS#;);insert into teach values(#;马悦 #;,#;女 #;,#;008#;,#;20.9.6#;,#;CS#;);insert into score values(#;96001#;,#;001#;,77);insert into score values(#;96001#;,#;003#;,89);insert into score values(#;96001#;,#;004#;,86);insert into score values(#;96001#;,#;005#;,82);insert into score values(#;96002#;,#;001#;,88);insert into score values(#;96002#;,#;003#;,92);insert into score values(#;96002#;,#;006#;,90);insert into score values(#;96005#;,#;004#;,92);insert into score values(#;96005#;,#;005#;,90);insert into score values(#;96005#;,#;006#;,89);insert into score values(#;96005#;,#;007#;,76);insert into score values(#;96003#;,#;001#;,69);insert into score values(#;97001#;,#;001#;,96);insert into score values(#;97001#;,#;008#;,95);insert into score values(#;96004#;,#;001#;,87);insert into score values(#;96003#;,#;003#;,91);insert into score values(#;97002#;,#;003#;,91);insert into score values(#;97002#;,#;004#;,NULL);insert into score values(#;97002#;,#;006#;,92);insert into score values(#;97004#;,#;005#;,90);insert into score values(#;97004#;,#;006#;,85);insert into studenttemp values(#;96001#;,#;马小燕 #;,#;CS#;,21)insert into studenttemp values(#;96002#;,#;黎明 #;,#;CS#;,18)insert into studenttemp values(#;97002#;,#;李成功 #;,#;CS#;,20)insert into studenttemp values(#;97004#;,#;李丽 #;,#;CS#;,19)insert into studenttemp values(#;96005#;,#;司马志明 #;,#;CS#;,18)select avg(score) avg1 into studentgr from scoregroup by snoupdate studenttempset sa=sa+2;select from studentgrupdate courseset ctime=(select ctimefrom course c1where ame=#; 数据结构 #;)where cname=#; 程序设计 #;插入的数据( 98001 , 001 , 95)中, student中没有 98001 这个学号插入的数据( 97001 , 010 , 80)中, course中没有 010 这个课程号删除的数据中,96001 这个学号在score 中有记录删除的数据中,003 这个课程号在score 中有记录delete from studenttempwhere sno like #;96第 16 页 共 16 页