实用文档《数据库系统》实验报告四学姓名实验时间2014-12-3
号实验学时数据库模式管理4
实验名称1. SQL Plus命令手册准
2. Oracle数据字典备
3. Oracle中的数据类型材
料1. 扩掌握在企业管理器中进行表的创建和管理的方法。
2. 利用企业管理器观察数据库的物理模式。
展(实此部分内容不要求在实验室完成,不用写入实验报告。
)
验Oracle 9i(实及以上版本)服务器
SQL Plus/ SQL Plus work sheet客户端验
环境1.掌握使用实SQL语句进行表的创建和管理的方法
2.验加深对关系数据库结构和数据完整性等概念的理解
目的1.实创建书上university数据库中所有的表,并使用命令观察用户所有表的表名、观察每张表的结构及每张表上的约束信息。
验
select * from user_tables;
内
容及步骤
实用文档desc SECTION;
select * from user_constraints where table_name = 'SECTION';
2. 修改表结构表中增加列存储教师家庭地址,其地址包括省、市、区、街instructor在(1)
道、门牌号等列,列的数据类型自己给出,列允许为空。
varchar(30),street varchar(30),city add table alter instructor (province
varchar(30),house_number varchar(30));
实用文档
设置是否成功?原因是什么表中的姓名字段长度都改1studen(2) 5,能否成功?说明原因将该字段长度改alter table student modify name varchar(10);
修改成功
alter table student modify name varchar(50);
修改成功
实用文档
只要修改的长度若大于已存在的字符的最大长度都行
且不给其,列设置默认值表中0插入一个新学生,student(3) 为tot_credtot_cred列赋值,观察结果。
default 0;
alter table student modify tot_cred
实用文档
insert into student (ID,NAME,DEPT_NAME) values(110,'zhuanghan','Finance'); select ID,NAME,DEPT_NAME from student;
实用文档
列是对总学分的统计,现在数据库中没有记录哪些(4) studen表tot_cre生已选修课程学分已累加,哪些课程的学分还没有累加。
设计一种方案记已累加课程,防止出现重复累加的情况或者设计一种方案简化总学分的计算过程。
作为标记,已经被累加的则这表增加多一个字段isComputed方案:对takesisComputed上1,没有被累加的为零,统计时就只需要找到takes个字段为的数据进行累加为0
studenttakes表是对student表上对表ID的外键约束,再添加(5) 删除takes,观察并解释实验结果。
添加一个不存在的学生选修的外键约束ID 表的表ID takesCS001课程的信息,并给他一个成绩。
再添加表是对student ,观察并解释实验结果。
约束外键
ALTER TABLE TAKES DROP CONSTRAINT SYS_C0054665;
实用文档
FOREIGN SYS_C0054665 CONSTRAINT TAKES ALTER TABLE ADD KEY(id) REFERENCES STUDENT(id);
实用文档
insert into takes values ('1111','CS-001','1','Spring','2013','A');
FOREIGN SYS_C0054665 ADD TABLE ALTER TAKES CONSTRAINT KEY(id) REFERENCES STUDENT(id);
实用文档
对三个字段非空是否能设置成功设takeID, course_id,sec_i(6)
id,表主键约束,增加某同学选同一门课程删take入数据有没有影响都相同)的信息,能否插入成功?解couese_id, sec_id, semester, year, grad原因。
alter table takes modify(ID not null,course_id not null,sec_id not null);
则修NULL修改设置时,插入的数据这三个字段必须不为空,如果字段有为改失败。
ALTER TABLE TAKES DROP PRIMARY KEY;
实用文档
(create table;student。
要求用两种方法实建立一张空3.参照studencreate table as create table student1
varchar(5), (ID
name varchar(20) not null,
dept_name
varchar(20),
numeric(3,0) check (tot_cred >= 0), tot_cred
primary key (ID),
foreign key (dept_name) references department on delete set null
);
实用文档
create table student2 as select * from student;
4. 选择某个约束,分别设置其有效、失效,观察区别。
ALTER TABLE STUDENT ENABLE CONSTRAINT SYS_C0054432;
实用文档
ALTER TABLE STUDENT DISABLE CONSTRAINT SYS_C0054432;
实用文档
的约束条件,将其置为有效和无效后重里面tol_red>选STUDEN唯一的解释是更改约束状态不改变数据库查看约束状态等都看不出区别数据。
创建表时设置了约束条件,但没有设置约束名,怎么知道约束名是什么?出现问题(列出遇到的问题及其解决方法)解决方案。