实验报告实验一.docx
- 文档编号:14296163
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:7
- 大小:16.55KB
实验报告实验一.docx
《实验报告实验一.docx》由会员分享,可在线阅读,更多相关《实验报告实验一.docx(7页珍藏版)》请在冰点文库上搜索。
实验报告实验一
沈阳工程学院
学生实验报告
(课程名称:
数据库原理及应用)
实验题目:
数据库模式设计
班级网本111学号16姓名邹壮
日期2012.10.10地点F座608指导教师关颖祝世东
一、实验目的
熟练掌握采用SQL命令建立数据库表、索引和视图的方法。
二、实验环境
Oracle10g数据库系统。
三、实验内容与要求
(一)实验内容
1.建立学生数据库模式
学生表:
student(sno 学号,sname 姓名,ssex 性别,sage 年龄,sdept 所在系)
其中:
sno长度为4的字符串,为主码;
sname长度为8的字符串;
ssex长度为2的字符串,其值只取男、女;
sage短整数,其值在0-150之间;
sdept长度为10的字符串。
2.建立课程数据库模式
课程表:
course(cno课程号,cname课程名,ccredit学分)
其中:
cno长度为4的字符串,为主码
cname长度为10的字符串,不能为空,且不能有重复课程名;
ccredit短整数。
3.建立选课数据库模式。
选课表:
sc(sno学号,cno课程号,grade成绩)
其中:
sno长度为4的字符串,和student表sno外键关联,且级联删除
cno长度为4的字符串,course表cno外键关联,
grade短整数,值或空或为0—100之间,
(sno,cno)联合作主码。
(二)实验要求
在Oracle10g的iSQLPlus中完成下列操作:
(1)创建上述三个表。
(2)向Student表增加"入学时间"列(列名为Scome,日期型)。
(3)将年龄的数据类型改为半字长整数。
(4)为Student中sname添加列级完整性约束,不能为空。
(5)删除Student中sname列级完整性约束。
(6)为SC建立按学号升序和课程号降序建立唯一索引。
(7)在表student的sname字段建立一个升序索引。
(8)删除在表student的sname字段建立的索引。
(9)给student表增加一个地址(address)属性。
(10)给student表删除地址(address)属性。
(11)建立视图view1,要求有sno,sname,cname,grade四个字段。
(12)建立视图view2,要求有sno,ssex,sage三个字段。
四、实验过程及结果分析
(1)创建上述三个表。
1.createtablestudent
(snochar(4)primarykey,
snamechar(8),
ssexchar
(2)check(ssexin(‘男’,’女’)),
sagenumber(3,0)check(sagebetween0and150),
sdeptchar(10)
);
分析:
SP2-0851:
以"creattabl..."开头的命令不能在iSQL*Plus中使用
(snochar(4)primarykey,
*
第1行出现错误:
ORA-00928:
缺失SELECT关键字
原因:
在table中少打一个a。
修改:
在table上加一个a。
ssexchar
(2)check(ssexin("男","女")),
第4行出现错误:
ORA-02438:
列检查约束条件无法引用其它列
修改:
双引号改为单引号。
2.createtablecourse
(cnochar(4)primarykey,
cnamechar(10)uniquecheck(cnameisnotnull),
ccreditnumber(3)
);
分析:
CREATETABLECOURSE
*
第1行出现错误:
ORA-00955:
名称已由现有对象使用
原因:
已经创建过该表。
3.createtablesc
(snochar(4),
cnochar(4),
gradenumber(10)check((gradeisnull)or(gradebetween0and100)),
primarykey(sno,cno),
foreignkey(sno)referencesstudent(sno)ondeletecascade,
foreignkey(cno)referencescourse(cno)
);
分析:
foreignkey(cno)referencesstudent(cno)
第7行出现错误:
ORA-00904:
"CNO":
标识无效
修改:
将第一个cno改写成sno.
foreignkey(cno)referencesstudent(cno)
第7行出现错误:
缺失右括号。
添加ondeletecascade。
(2)向Student表增加"入学时间"列(列名为Scome,日期型)。
altertablestudent
addscomedate;
(3)将年龄的数据类型改为半字长整数。
altertablestudent
modifysageint;
(4)为Student中sname添加列级完整性约束,不能为空。
altertablestudent
modifysnamecheck(snameisnotnull);
(5)删除Student中sname列级完整性约束。
altertablestudent
dropconstraintsname;
dropconstrintsname
*
ERRORatline2:
ORA-00905:
missingkeyword
修改:
constraint少打一个字母
(6)为SC建立按学号升序和课程号降序建立唯一索引
createuniqueindexxonsc(snoasc,cnodesc);
(7)在表student的sname字段建立一个升序索引。
createuniqueindextonstudent(snameasc);
(8)删除在表student的sname字段建立的索引。
dropindext;
dropindexb
*
ERRORatline1:
ORA-01418:
specifiedindexdoesnotexist
原因:
索引应与所建立的索引名相同。
修改:
将b改为t。
(9)给student表增加一个地址(address)属性。
altertablestudent
addaddresschar;
(10)给student表删除地址(address)属性。
altertablestudent
Dropcolumnaddress;
(11)建立视图view1,要求有sno,sname,cname,grade四个字段
createviewview1
as
selectstudent.sno,sname,cname,grade
fromstudent,course,sc;
selectstudent.sno,sname,cname,grade
*
ERRORatline2:
ORA-00905:
missingkeyword
修改:
缺少as
(12)建立视图view2,要求有sno,ssex,sage三个字段。
createviewview2
as
selectstudent.sno,ssex,sage
fromstudent;
五、成绩评定
优
良
中
及格
不及格
出勤
格式
内容
分析
总评
指导教师:
年月日
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告