华南农业大学教学方案计划数据库系统概念实验报告四.docx

上传人:b****7 文档编号:23337858 上传时间:2023-05-16 格式:DOCX 页数:13 大小:375.13KB
下载 相关 举报
华南农业大学教学方案计划数据库系统概念实验报告四.docx_第1页
第1页 / 共13页
华南农业大学教学方案计划数据库系统概念实验报告四.docx_第2页
第2页 / 共13页
华南农业大学教学方案计划数据库系统概念实验报告四.docx_第3页
第3页 / 共13页
华南农业大学教学方案计划数据库系统概念实验报告四.docx_第4页
第4页 / 共13页
华南农业大学教学方案计划数据库系统概念实验报告四.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

华南农业大学教学方案计划数据库系统概念实验报告四.docx

《华南农业大学教学方案计划数据库系统概念实验报告四.docx》由会员分享,可在线阅读,更多相关《华南农业大学教学方案计划数据库系统概念实验报告四.docx(13页珍藏版)》请在冰豆网上搜索。

华南农业大学教学方案计划数据库系统概念实验报告四.docx

华南农业大学教学方案计划数据库系统概念实验报告四

《数据库系统》实验报告四

学号

姓名

实验时间

2014-12-3

实验名称

数据库模式管理

实验学时

4

准备材料

1.SQLPlus命令手册

2.Oracle数据字典

3.Oracle中的数据类型

扩展实验

1.掌握在企业管理器中进行表的创建和管理的方法。

2.利用企业管理器观察数据库的物理模式。

(此部分内容不要求在实验室完成,不用写入实验报告。

实验环境

Oracle9i(及以上版本)服务器

SQLPlus/SQLPlusworksheet客户端

实验目的

1.掌握使用SQL语句进行表的创建和管理的方法

2.加深对关系数据库结构和数据完整性等概念的理解

实验内容及步骤

1.创建书上university数据库中所有的表,并使用命令观察用户所有表的表名、观察每张表的结构及每张表上的约束信息。

select*fromuser_tables;

descSECTION;

select*fromuser_constraintswheretable_name='SECTION';

2.修改表结构

(1)在instructor表中增加列存储教师家庭地址,其地址包括省、市、区、街道、门牌号等列,列的数据类型自己给出,列允许为空。

altertableinstructoradd(provincevarchar(30),cityvarchar(30),streetvarchar(30),house_numbervarchar(30));

(2).对student表中的姓名字段长度都改为10,设置是否成功?

原因是什么?

将该字段长度改为50,能否成功?

说明原因。

altertablestudentmodifynamevarchar(10);

修改成功

altertablestudentmodifynamevarchar(50);

修改成功

只要修改的长度若大于已存在的字符的最大长度都行

(3)为student表中tot_cred列设置默认值0,插入一个新学生,且不给其tot_cred列赋值,观察结果。

altertablestudentmodifytot_creddefault0;

insertintostudent(ID,NAME,DEPT_NAME)values(110,'zhuanghan','Finance');

selectID,NAME,DEPT_NAMEfromstudent;

(4)student表中tot_cred列是对总学分的统计,现在数据库中没有记录哪些学生已选修课程学分已累加,哪些课程的学分还没有累加。

设计一种方案记录已累加课程,防止出现重复累加的情况。

或者设计一种方案简化总学分的计算过程。

方案:

对takes表增加多一个字段isComputed作为标记,已经被累加的则这个字段为1,没有被累加的为零,统计时就只需要找到takes上isComputed为0的数据进行累加

 

(5)删除takes表上对student表ID的外键约束,再添加takes表是对student表ID的外键约束,观察并解释实验结果。

添加一个不存在的学生选修CS001课程的信息,并给他一个成绩。

再添加takes表是对student表ID的外键约束,观察并解释实验结果。

ALTERTABLETAKESDROPCONSTRAINTSYS_C0054665;

ALTERTABLETAKESADDCONSTRAINTSYS_C0054665FOREIGNKEY(id)REFERENCESSTUDENT(id);

insertintotakesvalues('1111','CS-001','1','Spring','2013','A');

ALTERTABLETAKESADDCONSTRAINTSYS_C0054665FOREIGNKEY(id)REFERENCESSTUDENT(id);

(6)设置takes表ID,course_id,sec_id三个字段非空,是否能设置成功,对插入数据有没有影响?

删除takes表主键约束,增加某同学选同一门课程(id,couese_id,sec_id,semester,year,grade都相同)的信息,能否插入成功?

解释原因。

altertabletakesmodify(IDnotnull,course_idnotnull,sec_idnotnull);

插入的数据这三个字段必须不为空,修改设置时,如果字段有为NULL则修改失败。

ALTERTABLETAKESDROPPRIMARYKEY;

 

3.参照表student建立一张空表student1。

要求用两种方法实现(createtable;createtableas…)。

createtablestudent1

(IDvarchar(5),

namevarchar(20)notnull,

dept_namevarchar(20),

tot_crednumeric(3,0)check(tot_cred>=0),

primarykey(ID),

foreignkey(dept_name)referencesdepartmentondeletesetnull

);

createtablestudent2asselect*fromstudent;

 

4.选择某个约束,分别设置其有效、失效,观察区别。

ALTERTABLESTUDENTENABLECONSTRAINTSYS_C0054432;

ALTERTABLESTUDENTDISABLECONSTRAINTSYS_C0054432;

选择STUDENT里面的tol_red>0的约束条件,将其置为有效和无效后重新查看约束状态等都看不出区别;唯一的解释是更改约束状态不改变数据库的数据。

出现问题

创建表时设置了约束条件,但没有设置约束名,怎么知道约束名是什么?

解决方案

(列出遇到的问题及其解决方法)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1