《数据库概论》实验报告书(2016)

上传人:206****923 文档编号:88628244 上传时间:2019-05-05 格式:DOC 页数:14 大小:109.50KB
返回 下载 相关 举报
《数据库概论》实验报告书(2016)_第1页
第1页 / 共14页
《数据库概论》实验报告书(2016)_第2页
第2页 / 共14页
《数据库概论》实验报告书(2016)_第3页
第3页 / 共14页
《数据库概论》实验报告书(2016)_第4页
第4页 / 共14页
《数据库概论》实验报告书(2016)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《数据库概论》实验报告书(2016)》由会员分享,可在线阅读,更多相关《《数据库概论》实验报告书(2016)(14页珍藏版)》请在金锄头文库上搜索。

1、数据库系统概论实验报告书专业班级网134学 号119074415姓 名 云飞指导教师 周兵 安徽工业大学计算机科学与技术学院数据库系统概论实验报告书 安徽工业大学计算机科学与技术学院实验一:数据定义语言 实验日期 年 月 日 实验目的 熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。 实验内容 Oracle上机环境以及Oracle客户端的配置参见附录。1 SQL数据定义语句: 例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sna

2、me(C,8)且可为空。CREATE TABLE Student(SNO CHAR(5),SNAME CHAR(10) NULL,SDEPT CHAR(2),SCLASS CHAR(2),SAGE NUMBER(2),CONSTRAINT SON_PK PRIMARY KEY(SNO);CREATE TABLE Course(CNO CHAR(3),CNAME VARCHAR2(16),CTIME NUMBER(3),CONSTRAINT CNO_PK PRIMARY KEY(CNO);CREATE TABLE Teach(TNAME CHAR(8),TSEX CHAR(2),CNO CHAR

3、(3),TDATE DATE,TDEPT CHAR(2),CONSTRAINT TT_PK PRIMARY KEY(TNAME,CNO,TDEPT),CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES Course(CNO);CREATE TABLE Score(SNO CHAR(5),CNO CHAR(3),SCORE NUMBER(5,2),CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),CONSTRAINT CNO1_FK FOREIGN KEY(CNO) REFERENCES Course(CNO),CONSTRAIN

4、T SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO);(Score表中定义外键的名称不能为CNO,被Teach表中约束条件占用) 例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。ALTER TABLE Student ADD SEX CHAR(2); 例1-3: (修改列名) 将Student表中列名SEX修改为SSEX。ALTER TABLE Student RENAME COLUMN SEX TO SSEX; 例1-4: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。

5、ALTER TABLE Student MODIFY SNAME CHAR(10) NOT NULL; 例1-5: (建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。CREATE UNIQUE INDEX SC_GRADE ON Score(CNO ASC,SCORE DESC); 例1-6: (删除索引) 删除索引SC_GRADE。DROP INDEX SC_GRADE; 例1-7: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相

6、同。CREATE TABLE S1(SNO CHAR(5) PRIMARY KEY NOT NULL,SNAME CHAR(10),SD CHAR(2),SA NUMBER(2); create table S1 as(select SNO,SNAME,SDEPT as SD,SAGE as SA from Student where 1=2); 例1-8: (修改数据库表) 删除成绩表Score的参照完整性约束关系。ALTER TABLE Score DROP CONSTARINT SNO_FK;ALTER TABLE Score DROP CONSTARINT CNO1_FK; 例1-9:

7、 (修改数据库表) 添加成绩表Score的参照完整性约束关系。ALTER TABLE SCORE ADD CONSTRAINT CNO1_FK FOREIGN KEY(CNO) REFERENCES Course(CNO);ALTER TABLE SCORE ADD CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO); 例1-10: (修改数据库表名) 将数据库表S1改名为Student_Temp。RENAME S1 TO Student_Temp; 实验要求 熟悉Oracle上机环境,掌握Oracle客户端的配置; 建立数据库

8、表,修改数据库表结构,建立、删除索引; 实验方法 按照附录中的操作步骤进行客户端的配置; 将实验需求用SQL语句表示; 执行SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。 实验总结 SQL语句以及执行结果; 对重点实验结果进行分析; 实验中的问题和提高; 收获与体会;实验心得:从这个实验中我学会了表的建立,内部一些格式的修改,在开始的时候我认为十分麻烦,但是随着我接触的多了,我感到有些代码都是相似的,找到相关的关联,就能够事半功倍。还有就是我发现许多表之间存在着联系,所以我要抓住相互的联系,才能更好的发挥数据语言的作用。 实验二:数据操纵语言 实验日期 年 月 日 实验目

9、的 在实验一的基础上,熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 实验内容 2 SQL数据操纵语句: 例2-1:(插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。 例2-2:(多行插入) 将表Student中在计算机系(CS)的学生数据插入到表Student_Temp中。INSERT INTO Student_Temp(SNO,SNAME,SD,SA)SELECT SNO,SNAME,SDEPT,SAGE FROM STUDENT WHERE SDEPT=CS;(以上操作中,注意用COMMIT提交数据,将数据保存到数据库服务器) 例2-3:(利用查询来实现表

10、的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。CREATE TABLE Student_Gr(SNO CHAR(10),SAVG NUMBER(5,2);INSERT INTO Student_Gr(SNO,SAVG)SELECT SNO,AVG(Score)FROM ScoreGROUP BY SNO;(create table Student_Gr as(select SNO,AVG(SCORE) from Score group by SNO);) 例2-4: (修改数据) 将Student_Temp表中所有学生的年龄加2。UPDATE Stude

11、nt_Temp SET SA=SA+2; 例2-5: (修改数据) 将Course表中程序设计课时数修改成与数据结构的课时数相同。UPDATE Course SET CTIME=(SELECT CTIME FROM Course WHERE CNO=004) WHERE CNO=008; 例2-6: (插入数据) 向Score表中插入数据(98001, 001, 95),根据返回信息解释其原因。INSERT INTO SCORE VALUES(98001,001,95); 插入的数据 如果某个字段是外键 那么该值要么为空 要么在主键表中 有对应的主键值,否则就不满足参照完整性约,Score表中

12、的SNO字段是根据Student中的SNO建立的,然而Student中的SNO中没有98001。 例2-7: (插入数据) 向Score表中插入数据(97001, 010, 80),根据返回信息解释其原因。INSERT INTO SCORE VALUES(97001,010,85);因为Score表中的CNO字段是根据Course中的CNO建立的,Course表中并没有课程号是010的。例2-8: (删除数据) 删除Student表中学号为96001的学生信息,根据返回信息解释其原因。DELETE FROM Student WHERE SNO=96001; 因为Student表中学号已经被别的

13、表作为外键,不可以被删除,违反完整约束条件例2-9: (删除数据) 删除Course表中课程号为003 的课程信息,根据返回信息解释其原因。DELETE FROM COURSE WHERE CNO=003; 因为Course表中课程号已经被别的表作为外键,不可以被删除,违反完整约束条件。 例2-10: (删除数据) 删除学生表Student_Temp中学号以96打头的学生信息。DELETE FROM Student_Temp WHERE SNO LIKE 96%;(此操作后,注意用ROLLBACK回退可能更新的数据) 例2-11: (删除数据) 删除数据库表Student_Temp中所有学生的

14、数据。 DELETE FROM Student_Temp WHERE 2!=0;(此处的条件语句为真即可,例如2=2) 例2-12:(删除表) 删除数据库表Student_Temp和Student_Gr。DROP TABLE Student_Temp;DROP TABLE Student_Gr; 实验要求 对数据库表进行插入、修改和删除数据的操作。 实验方法 按照附录中的操作步骤进行客户端的配置; 将实验需求用SQL语句表示; 执行SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。 实验总结 SQL语句以及执行结果; 对重点实验结果进行分析; 实验中的问题和提高; 收获与体会。实验心得:感觉实验2是对实验1的补充,实验2需要掌握的是对内部数据的修改和删除一些不必要的表。通过实验,我发现有些东西不是想删除就可以删除的,他们存在着完整约束条件,所以不能够实现那个操作。在发生了这个问题时,需要的是认真思索,找到问题的根源,这样既能够解决问题,也能都理解问题的本质原因,能够更好地帮助我的学习,非常不错!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号