资源描述:
《数据库实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数据库概论》实验《数据库系统概论》实验报告书专业班级软件学号16677777姓名哈哈指导教师陈业斌安徽工业大学计算机学院16/16《数据库概论》实验实验一:数据定义/数据操纵语言[实验日期]2016年9月24日[实验目的]熟悉Oracle上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。[实验内容]1.SQL数据定义语句:例1-1:(建立如附录一所示的四张数据表)按要求建立教学数据库表结构及其完整性约束关系,并将数据分别插入到教学数据库的四个数据库表中。例1-2:(修改表结构)在Student表中
2、将SSEX字段修改为char(2),观察返回结果,分析原因。显示:altertableSTUDENTmodify(SSEXchar(2))错误报告-SQL错误:ORA-01441:无法减小列长度,因为一些值过大01441.00000-"cannotdecreasecolumnlengthbecausesomevalueistoobig"例1-3:(修改表结构)在Student表中增加BirthDay(date)字段。altertableSTUDENTaddBirthDayDATE;例1-4:(修改表结构)在Student表中删除BirthDay字段。altertabl
3、eSTUDENTdropcolumnBirthDay;例1-5:(修改表结构)在Student表中增加一个默认值约束,约束’性别’的默认值为’男’。altertableSTUDENTmodify(SSEXdefault'男');2.SQL数据操纵语句:例2-1:(插入数据)执行如下语句向student表中插入一条数据。insertintostudent(sno,sname,sdept)values('96001','张三','SC');(1)根据返回信息解释其原因;显示:在行:5上开始执行命令时出错-insertintostudent(sno,sname,sdept)
4、values('96001','张三','SC')错误报告-SQL错误:ORA-01400:无法将NULL插入("STU"."STUDENT"."SCLASS")01400.00000-"cannotinsertNULLinto(%s)"原因:在定义表结构时已将SCLASS约束为NOTNULL。并且学号是主键,表里已经有学号为96001的学生,违反了主键的唯一性约束条件。(2)修改上面插入语句,让其能正确地插入一条记录。16/16《数据库概论》实验正确的为:insertintostudent(sno,sname,sdept,sclass)values('97006',
5、'张三','SC','02');例2-2:(插入数据)执行如下语句向Score表中插入一条数据。insertintoScorevalues('96006','001',85);(1)根据返回信息解释其原因;显示:在行:6上开始执行命令时出错-insertintoScorevalues('96006','001',85)错误报告-SQL错误:ORA-02291:违反完整约束条件(STU.FK_STUDENT_SCORE)-未找到父项关键字02291.00000-"integrityconstraint(%s.%s)violated-parentkeynotfound"原
6、因:在表SCORE中,sno作为其外键,在表STUDENT中学号为96006的学生,所以自然插不进去。(2)修改上面插入语句,让其能正确地插入一条记录。修改为:insertintoScorevalues('96002','002',85);例2-3:(修改数据)将Student表中所有学生的年龄加2。updateSTUDENTsetSAGE=SAGE+2;例2-4:(修改数据)将Course表中‘程序设计’课时数修改成50。updateCOURSEsetCTIME=50whereCNAME='程序设计';例2-5:(修改数据)将Student表中的学号’96001’改
7、为‘96010’,根据返回信息解释其原因。updateSTUDENTsetSNO='96010'whereSNO='96001';显示:在行:10上开始执行命令时出错-updateSTUDENTsetSNO='96010'whereSNO='96001'错误报告-SQL错误:ORA-02292:违反完整约束条件(STU.FK_STUDENT_SCORE)-已找到子记录02292.00000-"integrityconstraint(%s.%s)violated-childrecordfound"原因:学号为96001的学生已经出现在成绩表SCORE中