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

2020-06-24 15:30

《数据库系统概论》

实验报告书

专业班级

学 号

119074415

网134

姓 名 云飞 指导教师 周兵

安徽工业大学计算机科学与技术学院

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

实验一:数据定义语言

[ 实验日期 ] 年 月 日 [ 实验目的 ]

熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。 [ 实验内容 ]

Oracle上机环境以及Oracle客户端的配置参见附录。 1. SQL数据定义语句:

例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(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), 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),

2/19

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

SCORE NUMBER(5,2),

CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),

CONSTRAINT CNO1_FK FOREIGN KEY(CNO) REFERENCES Course(CNO), CONSTRAINT 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)且为非空。

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)的数据类型定义相同。 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: (修改数据库表) 添加成绩表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客户端的配置; ② 建立数据库表,修改数据库表结构,建立、删除索引; [ 实验方法 ]

3/19

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

① 按照附录中的操作步骤进行客户端的配置; ② 将实验需求用SQL语句表示; ③ 执行SQL语句;

④ 查看执行结果,如果结果不正确,进行修改,直到正确为止。

[ 实验总结 ]

① SQL语句以及执行结果; ② 对重点实验结果进行分析; ③ 实验中的问题和提高; ④ 收获与体会;

实验心得:从这个实验中我学会了表的建立,内部一些格式的修改,在开始的时候我认为十分麻烦,但是随着我接触的多了,我感到有些代码都是相似的,找到相关的关联,就能够事半功倍。还有就是我发现许多表之间存在着联系,所以我要抓住相互的联系,才能更好的发挥数据语言的作用。

实验二:数据操纵语言

[ 实验日期 ] 年 月 日 [ 实验目的 ]

在实验一的基础上,熟练掌握和使用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:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。

CREATE TABLE Student_Gr( SNO CHAR(10), SAVG NUMBER(5,2));

INSERT INTO Student_Gr(SNO,SAVG) SELECT SNO,AVG(Score)

4/19

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

FROM Score

GROUP BY SNO;(create table Student_Gr as(select SNO,AVG(SCORE) from Score group by SNO);) 例2-4: (修改数据) 将Student_Temp表中所有学生的年龄加2。

UPDATE Student_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表中的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表中学号已经被别的表作为外键,

不可以被删除,违反完整约束条件

例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中所有学生的数据。

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语句以及执行结果; ② 对重点实验结果进行分析;

5/19


《数据库概论》实验报告书(2016).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初中化学实验-基本操作部分提纲

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: