《数据库系统概论》
实验报告书
安徽工业大学计算机学院
专业班级 学 号 姓 名 指导教师
软121 129074160 沈克 戴小平
《数据库系统概论》实验报告书 安徽工业大学计算机学院
实验一:数据定义语言
[ 实验日期 ] 2014 年 10 月 23 日 [ 实验目的 ]
熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。 [ 实验内容 ]
Oracle上机环境以及Oracle客户端的配置参见附录。 1. SQL数据定义语句:
例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。 1,创建表STUDENT CREATE TABLE STUDENT ( SNO CHAR(5) NOT NULL, SNAME CHAR(10), SDEPT CHAR(2) , SCLASS CHAR(2) , SAGE NUMBER(2),
CONSTRAINT SNO_PK PRIMARY KEY(SNO));
2,创建表COURSE CREATE TABLE COURSE( CNO CHAR(3) NOT NULL, CNAME VARCHAR2(16) NOT NULL, CTIME NUMBER(3),
CONSTRAINT CNO_PK PRIMARY KEY(CNO));
3,创建表TEACH CREATE TABLE TEACH( TNAME VARCHAR(8) NOT NULL, TSEX CHAR(2), CNO CHAR(3), TDATE VARCHAR2(9), TDEPT CHAR(2),
1/18
《数据库系统概论》实验报告书 安徽工业大学计算机学院
CONSTRAINT TNAME_PK PRIMARY KEY(TNAME));
4,创建表SCORE CREATE TABLE SCORE( SNO CHAR(5) NOT NULL, CNO CHAR(3) NOT NULL, SCORE NUMBER(5,2),
CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),
CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES STUDENT(SNO), CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES COURSE(CNO));
二、插入数据 1,STUDENT
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,'男'); 2,COURSE
INSERT 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 INTO COURSE VALUES('007','DB_Design',48); INSERT INTO COURSE VALUES('008','程序设计',56); 3,TEACH
2/18
《数据库系统概论》实验报告书 安徽工业大学计算机学院
INSERT INTO TEACH VALUES('王成钢','男','004','1999-09-05','CS'); INSERT INTO TEACH VALUES('李正科','男','003', '1999-09-05','CS'); INSERT INTO TEACH VALUES('严敏','女','001','1999-09-05','MA'); INSERT INTO TEACH VALUES('赵高','男','004','1999-09-05','IS'); INSERT INTO TEACH VALUES('李正科 ','男','003','2000-02-23','MA'); INSERT INTO TEACH VALUES('李玉兰','女','006','2000-02-23','CS'); INSERT INTO TEACH VALUES('王成钢 ','男','004','2000-02-23','IS'); INSERT INTO TEACH VALUES('马悦','女','008','2000-09-06','CS'); INSERT INTO TEACH VALUES('王成钢 ','男','007','1999-09-05','CS'); 4,SCORE
INSERT 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); INSERT 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 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 SCORE VALUES('97004','008',75); INSERT INTO SCORE VALUES('97003','001',59);
3/18
《数据库系统概论》实验报告书 安徽工业大学计算机学院
INSERT INTO SCORE VALUES('97003','003',58);
例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 VARCHAR(10) NOT NULL;
例1-5:(建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE CREATE 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) NOT NULL, SNAME VARCHAR2(10), SD VARCHAR2(2),
SA NUMBER(2));
例1-8: (修改数据库表) 删除成绩表Score的参照完整性约束关系。 ALTER TABLE SCORE DROP CONSTRAINT SNO_FK; ALTER TABLE SCORE DROP CONSTRAINT CNO_FK;
例1-9: (修改数据库表) 添加成绩表Score的参照完整性约束关系。
ALTER TABLE SCORE ADD CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES STUDENT(SNO); ALTER TABLE SCORE ADD CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES COURSE(CNO);
例1-10: (修改数据库表名) 将数据库表S1改名为Student_Temp
RENAME S1 TO Student_Temp;
[ 实验要求 ]
4/18