《数据库系统概论》
实验报告书
专业班级
学 号
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