《华南农业大学数据库系统概念实验报告四.doc》由会员分享,可在线阅读,更多相关《华南农业大学数据库系统概念实验报告四.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、|数据库系统实验报告四学号姓名 实验时间 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. 创建书上 un
2、iversity 数据库中所有的表,并使用命令观察用户所有表的表名、观察每张表的结构及每张表上的约束信息。select * from user_tables;|desc SECTION;select * from user_constraints where table_name = SECTION;2. 修改表结构(1) 在 instructor 表中增加列存储教师家庭地址,其地址包括省、市、区、街道、门牌号等列,列的数据类型自己给出,列允许为空。alter table instructor add (province varchar(30),city varchar(30),street
3、varchar(30),house_number varchar(30);|(2) .对 student 表中的姓名字段长度都改为 10,设置是否成功?原因是什么?将该字段长度改为 50,能否成功?说明原因。alter table student modify name varchar(10);修改成功alter table student modify name varchar(50);修改成功|只要修改的长度若大于已存在的字符的最大长度都行(3) 为 student 表中 tot_cred 列设置默认值 0,插入一个新学生,且不给其tot_cred 列赋值,观察结果。alter table
4、 student modify tot_cred default 0;|insert into student (ID,NAME,DEPT_NAME) values(110,zhuanghan,Finance);select ID,NAME,DEPT_NAME from student;|(4) student 表中 tot_cred 列是对总学分的统计,现在数据库中没有记录哪些学生已选修课程学分已累加,哪些课程的学分还没有累加。设计一种方案记录已累加课程,防止出现重复累加的情况。或者设计一种方案简化总学分的计算过程。方案:对 takes 表增加多一个字段 isComputed 作为标记,已经
5、被累加的则这个字段为 1,没有被累加的为零,统计时就只需要找到 takes 上isComputed 为 0 的数据进行累加(5) 删除 takes 表上对 student 表 ID 的外键约束,再添加 takes 表是对student 表 ID 的外键 约束 ,观察并解释实验结果。添加一个不存在的学生选修 CS001 课程的信息,并给他一个成绩。再添加 takes 表是对 student表 ID 的外键 约束 ,观察并解释实验结果。ALTER TABLE TAKES DROP CONSTRAINT SYS_C0054665;|ALTER TABLE TAKES ADD CONSTRAINT S
6、YS_C0054665 FOREIGN KEY(id) REFERENCES STUDENT(id);|insert into takes values (1111,CS-001,1,Spring,2013,A);ALTER TABLE TAKES ADD CONSTRAINT SYS_C0054665 FOREIGN KEY(id) REFERENCES STUDENT(id);|(6) 设置 takes 表 ID, course_id,sec_id 三个字段非空,是否能设置成功,对插入数据有没有影响? 删除 takes 表主键约束,增加某同学选同一门课程(id, couese_id, se
7、c_id, semester, year, grade 都相同)的信息,能否插入成功?解释原因。alter table takes modify(ID not null,course_id not null,sec_id not null);插入的数据这三个字段必须不为空,修改设置时,如果字段有为 NULL 则修改失败。ALTER TABLE TAKES DROP PRIMARY KEY;|3. 参照表 student 建立一张空表 student1。要求用两种方法实现 (create table; create table as )。create table student1(ID varchar(5), name varchar(20) not null, dept_name varchar(20), tot_cred numeric(3,0) check (tot_cred = 0),primary key (ID),foreign key (dept_name) references department on delete set null);
限制150内