安徽工业大学数据库实验报告.doc
《安徽工业大学数据库实验报告.doc》由会员分享,可在线阅读,更多相关《安徽工业大学数据库实验报告.doc(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、优质文本?数据库系统概论?实验报告书专业班级学 号姓 名指导教师安徽工业大学计算机科学与技术学院目录实验一:数据定义语言 1实验二:数据操纵语言 10实验三:数据查询语言17实验四:视图、授权控制与事务处理43实验五:Oracle存储过程与触发器54数据库学习总结56优质文本实验一:数据定义语言 实验日期 年 月 日 实验目的 熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。 实验内容 Oracle上机环境以及Oracle客户端的配置参见附录。1 SQL数据定义语句: 例1-1: (建立数据库表) 建立教学数据库
2、的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。创立表Student:CREATE TABLE STUDENT( SNOCHAR(5), SNAMEVARCHAR2(8), SDEPTCHAR(2)NOT NULL, SCLASSCHAR(2) NOT NULL, SAGENUMBER(2),CONSTRAINT SNOS_PK PRIMARY KEY(SNO);创立表Course:CREATE TABLE Course( CNOCHAR(3), CNAMEVARCHAR2(16), CTIMENUMBER(3),CONST
3、RAINT CNOC_PK PRIMARY KEY(CNO);创立表Teach:CREATE TABLE Teach( TNAMEVARCHAR2(8), TSEXCHAR(2), CNOCHAR(3), TDATEDATE, TDEPTCHAR(2),CONSTRAINT TCT_PK PRIMARY KEY(TNAME,CNO,TDEPT),CONSTRAINT CNOT_FK FOREIGN KEY(CNO) REFERENCES Course(CNO);创立表Score:CREATE TABLE SCORE( SNOCHAR(5), CNOCHAR(3), SCORENUMBER(5,
4、2),CONSTRAINT SCS_PK PRIMARY KEY(SNO,CNO),CONSTRAINT SNOS_FK FOREIGN KEY(SNO) REFERENCES Student(SNO),CONSTRAINT CNOS_FK FOREIGN KEY(CNO) REFERENCES Course(CNO) );插入数据:1、StudentINSERT INTO Student VALUES(96001,马小燕 ,CS,01,21)?INSERT INTO Student VALUES(96002,黎明 ,CS,01,18)?INSERT INTO Student VALUES(9
5、6003,刘东明 ,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
6、,18)INSERT INTO Student VALUES(20001,赵薇 ,IS,02,19)2、CourseINSERT INTO Course VALUES(001,数学分析,144)?INSERT INTO Course VALUES(002,普通物理,144)?INSERT INTO Course VALUES(003,微机原理,72)?INSERT INTO Course VALUES(004,数据结构,72)?INSERT INTO Course VALUES(005,操作系统,64)INSERT INTO Course VALUES(006,数据库原理,64)?INSERT
7、 INTO Course VALUES(007,DB_Design,48)?INSERT INTO Course VALUES(008,程序设计,56)3、TeachINSERT INTO Teach VALUES(王成钢,男,004,TO_DATE( 1999-09-05, YYYY-MM-DD),CS)?INSERT INTO Teach VALUES(李正科,男,003,TO_DATE( 1999-09-05, YYYY-MM-DD),CS)?INSERT INTO Teach VALUES(严敏 ,女,001,TO_DATE( 1999-09-05, YYYY-MM-DD),MA)?I
8、NSERT INTO Teach VALUES(赵高 ,男,004,TO_DATE( 1999-09-05, YYYY-MM-DD),IS)?INSERT INTO Teach VALUES(李正科,男,003,TO_DATE( 2000-02-23, YYYY-MM-DD),MA)?INSERT INTO Teach VALUES(刘玉兰,女,006,TO_DATE( 2000-02-23, YYYY-MM-DD),CS)?INSERT INTO Teach VALUES(王成钢,男,004,TO_DATE( 2000-02-23, YYYY-MM-DD),IS)?INSERT INTO T
9、each VALUES(马悦 ,女,008,TO_DATE( 2000-09-06, YYYY-MM-DD),CS)?INSERT INTO Teach VALUES(王成钢,男,007,TO_DATE( 1999-09-05, YYYY-MM-DD),CS)?4、ScoreINSERT INTO Score VALUES(96001,001,77.5)?INSERT INTO Score VALUES(96001,003,89 )?INSERT INTO Score VALUES(96001,004,86 )?INSERT INTO Score VALUES(96001,005,82 )?I
10、NSERT INTO Score VALUES(96002,001,88 )?INSERT INTO Score VALUES(96002,003,92.5)?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 VA
11、LUES(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, )?INSERT INTO Score VALUES(97002,006,92 )?INS
12、ERT INTO Score VALUES(97004,005,90 )?INSERT INTO Score VALUES(97004,006,85 )?INSERT INTO Score VALUES(97004,008,75 )?INSERT INTO Score VALUES(97003,001,59 )?INSERT INTO Score VALUES(97003,003,58 ) 例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。ALTER TABLE Student ADD SEX CHAR(2); 例1-3: (修改列名) 将Student表中列名SE
13、X修改为SSEX。ALTER TABLE Student RENAME COLUMN SEX TO SSEX; 例1-4: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。ALTER TABLE Student MODIFY SNAME VARCHAR2(10) NOT NULL; 例1-5: (建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。CREATE INDEX SC_GRADE ON Score(CNO ASC,SCORE DESC); 例1-6: (删除索引) 删除索引SC_GRADE。DROP IND
14、EX SC_GRADE; 例1-7: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。CREATE TABLE S1( SNOCHAR(5), SNAMEVARCHAR2(10) NOT NULL, SDCHAR(2) NOT NULL, SANUMBER(2); 例1-8: (修改数据库表) 删除成绩表Score的参照完整性约束关系。TER TABLE Score DROP CONSTRAINT SNOS_FK;ALTER TABLE Score DROP CON
15、STRAINT CNOS_FK; 例1-9: (修改数据库表) 添加成绩表Score的参照完整性约束关系。ALTER TABLE Score ADD CONSTRAINT SNO_FK FREIGN KEY(SNO) REFERENCES STUDENT(SNO);ALTER TABLE Score ADD CONSTRAINT CNOS_FK FOREIGN?KEY(CNO) REFERENCES Course(CNO); 例1-10: (修改数据库表名) 将数据库表S1改名为Student_Temp。RENAME S1 TO Student_Temp; 实验要求 熟悉Oracle上机环境,
16、掌握Oracle客户端的配置; 建立数据库表,修改数据库表结构,建立、删除索引; 实验方法 按照附录中的操作步骤进行客户端的配置; 将实验需求用SQL语句表示; 执行SQL语句; 查看执行结果,如果结果不正确,进行修改,直到正确为止。 实验总结 SQL语句以及执行结果; 对重点实验结果进行分析; 实验中的问题和提高; 收获与体会。从实验一中我学会了表的建立、表的内部一些格式的修改,我在实验一就把数据全插入了,因为student表的性别列在开始的时候没有建立,所以在开始的他并没有显示,到后来为了和实验报告上的表一样,还得重新添加性别列。我知道了因为各表之间有了关联,所以有些时候简单的修改回行不通
17、,我就遇到了“未找到父项关键字等等问题,还好后来都改正过来了,总的来说,也算开始了解SQL语言了。优质文本实验二:数据操纵语言 实验日期 年 月 日 实验目的 在实验一的根底上,熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 实验内容 2 SQL数据操纵语句: 例2-1:(插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。 例2-2:(多行插入) 将表Student中在计算机系(CS)的学生数据插入到表Student_Temp中。INSERTINTOSTUDENT_TEMP(SNO,SNAME,SD,SA)SELECTSNO,SNAME,SDEPT,SAGE FR
18、OMSTUDENTWHERESDEPT=CS以上操作中,注意用COMMIT提交数据,将数据保存到数据库效劳器 例2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。CREATE TABLE STUDENT_GR(SNO CHAR(5),SNAME VARCHAR2(10),GAVG NUMBER(5,2); INSERT INTO STUDENT_GR(SNO,GAVG) SELECT SNO,AVG(SCORE) FROM SCORE GROUP BY SNO; 例2-4: (修改数据) 将Student_Temp表中所有学生的年龄
19、加2。UPDATE STUDENT_TEMP SET SA=SA+2; 例2-5: (修改数据) 将Course表中程序设计课时数修改成与数据结构的课时数相同。UPDATE COURSE SET CTIME=(SELECT CTIME FROM COURSE WHERE CNAME=数据结构)WHERE CNAME=程序设计; 例2-6: (插入数据) 向Score表中插入数据98001, 001, 95,根据返回信息解释其原因。INSERT INTO SCORE VALUES(98001,001,95); 因为Score中的Sno是参照Student表中的Sno,而Student表中没有98
20、001的Sno,所以插入失败。 例2-7: (插入数据) 向Score表中插入数据97001, 010, 80,根据返回信息解释其原因。INSERT INTO SCORE VALUES(97001,010,80);因为Score中的Cno是参照Course表中的Cno,而Course表中没有010的Cno,所以插入失败。例2-8: (删除数据) 删除Student表中学号为96001的学生信息,根据返回信息解释其原因。DELETE FROM STUDENT WHERE SNO=96001; 因为Score表中的Sno是参照Student表中的Sno,Sno_FK 默认关系是当父表的被删除时,如
21、果该行在子表中引用,那么它不能被删除。相当于ON DELETE RESTRICTED.例2-9: (删除数据) 删除Course表中课程号为003 的课程信息,根据返回信息解释其原因。DELETE FROM COURSE WHERE CNO=003; 因为Score表中的Cno是参照Course表中的Cno,Cno_FK 默认关系是当父表的被删除时,如果该行在子表中引用,那么它不能被删除。相当于ON DELETE RESTRICTED. 例2-10: (删除数据) 删除学生表Student_Temp中学号以96打头的学生信息。DELETE FROM STUDENT_TEMP WHERE SNO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安徽 工业大学 数据库 实验 报告
限制150内