数据库实验报告

2020-04-14 16:28

《数据库系统概论》

实验报告书

专业班级 学 号 姓 名 指导教师

安徽工业大学计算机学院

网络工程103班 109074360 桂大有 周兵

Oracle9i上机操作指南 安徽工业大学计算机学院

实验一:数据定义语言

1. SQL数据定义语句:

例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。 CREATE TABLE STudent (Sno CHAR(5),

Sname VARCHAR2(8) NULL, Sdept VARCHAR2(2), SClass CHAR(2) NOT NULL,

SAge NUMBER(2) CHECK(SAGE BETWEEN 12 AND 60), CONSTRAINT SNO_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 VARCHAR2(8),

TSEX CHAR(2) CHECK(TSex IN('男','女')), CNO CHAR(3), TDATE DATE, TDEPT CHAR(2),

constraint teach_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 c_fk FOREIGN KEY(cno) REFERENCES course(cno), CONSTRAINT Sno_fk FOREIGN KEY(Sno) REFERENCES STUDENT(Sno),

1/10

Oracle9i上机操作指南 安徽工业大学计算机学院

CONSTRAINT Ck1 CHECK(SCORE>=0 AND SCORE<=100));

例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。 ALTER TABLE Student ADD Sex CHAR(2) CHECK(Sex IN('男','女')); 例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 VARCHAR2(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, Sname VARCHAR2(10) not NULL,Sd VARCHAR2(2), SA NUMBER(2) CHECK(SA BETWEEN 12 AND 60));

例1-8: (修改数据库表) 删除成绩表Score的参照完整性约束关系。 ALTER TABLE SCore DROP CONSTRAINT Ck1;

例1-9: (修改数据库表) 添加成绩表Score的参照完整性约束关系。 ALTER TABLE SCore ADD CONSTRAINT Ck1 CHECK(Grade>=0 AND Grade<=100); 例1-10: (修改数据库表名) 将数据库表S1改名为Student_Temp。 RENAME S1 TO Student_Temp;

实验二:数据操纵语言

2. SQL数据操纵语句:

例2-1: (插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。 INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('96001','马小燕','CS','01','女',21);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('96002','黎明','CS','01','男',18);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('96003','刘东明','MA','01','男',18);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('96004','赵志勇','IS','02','男',20);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('97001','马蓉','MA','02','女',19);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage)

2/10

Oracle9i上机操作指南 安徽工业大学计算机学院

VALUES('97002','李成功','CS','01','男',20);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('97003','黎明','IS','03','女',19);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('97004','李丽','CS','02','女',19);

INSERT INTO Student(Sno,Sname,Sdept,Sclass,SSex,sage) VALUES('96005','司马志明','CS','02','男',18); COMMIT;

INSERT INTO Course(Cno,Cname,ctime) VALUES('001','数学分析',144); INSERT INTO Course(Cno,Cname,ctime) VALUES('002','普通物理',144); INSERT INTO Course(Cno,Cname,ctime) VALUES('003','微机原理',72); INSERT INTO Course(Cno,Cname,ctime) VALUES('004','数据结构',72); INSERT INTO Course(Cno,Cname,ctime) VALUES('005','操作系统',64); INSERT INTO Course(Cno,Cname,ctime) VALUES('006','数据库原理',64); INSERT INTO Course(Cno,Cname,ctime) VALUES('007','DB_Design',48); INSERT INTO Course(Cno,Cname,ctime) VALUES('008','程序设计',56); commit;

INSERT INTO score(sno,cno,score) VALUES('96001','001',77.5); INSERT INTO score(sno,cno,score) VALUES('96001','003',89); INSERT INTO score(sno,cno,score) VALUES('96001','004',86); INSERT INTO score(sno,cno,score) VALUES('96001','005',82); INSERT INTO score(sno,cno,score) VALUES('96002','001',88); INSERT INTO score(sno,cno,score) VALUES('96002','003',92.5); INSERT INTO score(sno,cno,score) VALUES('96002','006',90); INSERT INTO score(sno,cno,score) VALUES('96005','004',92); INSERT INTO score(sno,cno,score) VALUES('96005','005',90); INSERT INTO score(sno,cno,score) VALUES('96005','006',89); INSERT INTO score(sno,cno,score) VALUES('96005','007',76); INSERT INTO score(sno,cno,score) VALUES('96003','001',69); INSERT INTO score(sno,cno,score) VALUES('97001','001',96); INSERT INTO score(sno,cno,score) VALUES('97001','008',95); INSERT INTO score(sno,cno,score) VALUES('96004','001',87); INSERT INTO score(sno,cno,score) VALUES('96003','003',91); INSERT INTO score(sno,cno,score) VALUES('97002','003',91);

3/10

Oracle9i上机操作指南 安徽工业大学计算机学院

INSERT INTO score(sno,cno,score) VALUES('97002','004',00); INSERT INTO score(sno,cno,score) VALUES('97002','006',92); INSERT INTO score(sno,cno,score) VALUES('97004','005',90); INSERT INTO score(sno,cno,score) VALUES('97004','006',85); INSERT INTO score(sno,cno,score) VALUES('97004','008',75); INSERT INTO score(sno,cno,score) VALUES('97003','001',59); INSERT INTO score(sno,cno,score) VALUES('97003','003',58); Commit;

例2-2:(多行插入) 将表Student表中计算机系(‘CS’)的学生数据插入到表S1中。 insert into s1(sno,sname,sd,sa)select sno,sname,sdept,sage from student; commit;

(以上操作中,注意用COMMIT提交数据,将数据保存到数据库服务器)

例2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。

create table student_Gr(no char(5) primary key,sc_avg number(5,2));

insert into student_Gr(no,sc_avg) 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 cname='数据结构') where cname='程序设计';

例2-6: (插入数据) 向Score表中插入数据(‘98001’, ‘001’, 95),根据返回信息解释其原因。 SQL> insert into score values('98001','001',95); insert into score values('98001','001',95) *

第 1 行出现错误:

ORA-02291: 违反完整约束条件 (U09074331.SNO_FK) - 未找到父项关键字

例2-7: (插入数据) 向Score表中插入数据(‘97001’, ‘010’, 80),根据返回信息解释其原因。 SQL> insert into score values('97001','010',80); insert into score values('97001','010',80) *

第 1 行出现错误:

ORA-02291: 违反完整约束条件 (U09074331.C_FK) - 未找到父项关键字例2-8: (删除数据) 删除Student表中学号为‘96001’的学生信息,根据返回信息解释其原因。 SQL> delete from student where sno='96001'; delete from student where sno='96001'

4/10


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

下一篇:2013-2018年中国商业街建设市场专项调查及投资价值预测分析报告

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

马上注册会员

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