您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 数据库实验报告(实验一)
沈阳工程学院学生实验报告(课程名称:数据库原理及应用)实验题目:数据库模式设计班级软件本111学号2011417104姓名吴月芬日期2012.10.16地点F座606指导教师孙宪丽祝世东-1-一、实验目的熟练掌握采用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外键关联,-2-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(11)primarykey,snamechar(8),ssexchar(2)checkssexin(‘男’,’女’),sagenumbercheckbetween0and150,sdeptchar(10));-3-结果:ssexchar(2)checkssexin(‘男’,’女’),*第4行出现错误:ORA-00906:缺失左括号分析错误原因:“check”检查必须用括号将条件括起,改正代码如下:createtablestudent(snochar(11)primarykey,snamechar(8),ssexchar(2)check(ssexin('男','女')),sagenumbercheck(sagebetween0and150),sdeptchar(10));结果:表已创建,如图1.1所示。NameNull?TypeSNONOTNULLCHAR(11)SNAMECHAR(8)SSEXCHAR(2)SAGENUMBERSDEPTCHAR(10)图1.1所示2)创建课程数据库模式,代码如下:createtablecourse(cnochar(4)primarykey,cnamechar(10)uniquenotnull,ccreditnumber);结果:表已创建,如图1.2所示-4-NameNull?TypeCNONOTNULLCHAR(11)CNAMENOTNULLCHAR(10)CCREDITNUMBER图1.2所示3)创建选课数据库模式,代码如下:createtablesc(snochar(11),cnochar(11),gradenumbernullorcheck(gradebetween0and100);primarykey(sno,cno),foreignkey(sno)referencesstudent(sno)ondeletecascade,foreignkey(cno)referencescourse(cno));结果:gradenumbernullorcheck(gradebetween0and100),*第4行出现错误:ORA-00907:缺失右括号分析错误原因:“check”里条件写错,同时还是错在括号上。改正如下:createtablesc(snochar(11),cnochar(11),gradenumbercheck(gradeisnullor(gradebetween0and100)),primarykey(sno,cno),foreignkey(sno)referencesstudent(sno)ondeletecascade,foreignkey(cno)referencescourse(cno)-5-);结果:表已创建,如图1.3所示。NameNull?TypeSNONOTNULLCHAR(11)CNONOTNULLCHAR(11)GRADENUMBER图1.3所示(2)altertablestudentaddscomedate;结果:表已更改,如图1.4所示。NameNull?TypeSNONOTNULLCHAR(11)SNAMECHAR(8)SSEXCHAR(2)SAGENUMBERSDEPTCHAR(10)SCOMEDATE图1.4所示(3)altertablestudentaltercolumnsageinteger;结果:altertablestudentaltercolumnsageinteger*第1行出现错误:ORA-01735:无效的ALTERTABLE选项分析错误原因:在oracle数据库中用“modify”而不用“altercolumn”,改正如下:altertablestudentmodify(sageinteger);结果:表已更改,如图1.5所示。NameNull?Type-6-SNONOTNULLCHAR(11)SNAMECHAR(8)SSEXCHAR(2)SAGEINTEGERSDEPTCHAR(10)SCOMEDATE图1.5所示(4)altertablestudentmodifysnamenotnull;结果:表已更改,如图1.6所示。NameNull?TypeSNONOTNULLCHAR(11)SNAMENOTNULLCHAR(8)SSEXCHAR(2)SAGENUMBERSDEPTCHAR(10)SCOMEDATE图1.6所示(5)altertablestudentdropnotnull(sname);结果:altertablestudentdropnotnull(sname)*第1行出现错误:ORA-00905:缺失关键字改正如下:altertableStudentmodifysnameintnull;结果:表已更改,如图1.7所示。NameNull?TypeSNONOTNULLCHAR(11)SNAMECHAR(8)-7-SSEXCHAR(2)SAGENUMBERSDEPTCHAR(10)SCOMEDATE图1.7所示(6)creatuniqueindexscnoonsc(snoasc,cnodesc);结果:SP2-0851:以creatuniq...开头的命令不能在iSQL*Plus中使用。分析原因错误:“create”字母打错,改正如下:createuniqueindexscnoonsc(snoasc,cnodesc);结果:Indexcreated.(7)createindexsnameonstudent(snameasc);结果:Indexcreated.(8)dropindexsname结果:Indexdropped.(9)altertablestudentaddaddresschar;结果:表已更改,如图1.8所示。NameNull?TypeSNONOTNULLCHAR(11)SNAMECHAR(8)SSEXCHAR(2)SAGENUMBERSDEPTCHAR(10)SCOMEDATEADDRESSCHAR(1)图1.8所示(10)altertablestudentdrop(address);-8-结果:Tablealtered.如图1.9所示。NameNull?TypeSNONOTNULLCHAR(11)SNAMECHAR(8)SSEXCHAR(2)SAGENUMBERSDEPTCHAR(10)SCOMEDATE图1.9所示(11)createviewview1asselects.sno,sname,cname,gradefromstudents,course,sc结果:视图已创建。(12)createviewview2asselects.sno,ssex,sagefromstudents结果:视图已创建。-9-五、成绩评定优良中及格不及格出勤格式内容分析总评指导教师:年月日-10-
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:数据库实验报告(实验一)
链接地址:https://www.777doc.com/doc-5299567 .html