您好,欢迎访问三七文档
数据库作业第一次1、指明下列实体间联系的种类:(1)教研室和教师(假设一个教师只属于一个教研室,一个教研室可有多名教师)(2)商店和顾客;(3)国家和首都。2、指出下列关系模式的主码:(1)考试情况(课程号,考试性质,考试日期,考试地点)。假设一门主课程在不同的日期可有多次考试,但在同一天只能考一次。多门不同的课程可以同时进行考试。(2)教师授课(教师号,课程号,授课时数,学年,学期)。假设一名教师在同一学年和学期可以讲授多门课程,也可以在不同学年和学期多次讲授同一门课程,对每门课程的讲授都有一个授课时数。(3)图书借阅(书号,读者号,借书日期,还书日期)。假设一个读者可以在不同的日期多次借阅同一本书,一个读者可以同时借阅多本不同的图书,一本书可以在不同时间借给不同的读者。但一个读者不能再同一天对同一本书借阅多次。答:课程名、考试日期答:课程号、学年、学期答:书号、读者号、借书日期3、数据库包含哪三级模式?试分别说明每一级模式的作用。数据库系统包含的三级模式为:内模式、模式和外模式。外模式是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。内模式是对整个数据库的底层表示,它描述了数据的存储结构。第二次1、数据完整性的含义是什么?答:数据的完整性是为了防止数据库中存在不符合应用语义的数据,为了维护数据的完整性,数据库管理系统提供了一种机制来检查数据库中的数据,看其是否满足语义规定的条件。这些加在数据库数据之上的语义约束条件就是数据完整性约束条件。2、写出创建如下3张表的SQL语句,要求在定义表的同时定义数据的完整性约束:(1)“图书表”结构如下:书号:统一字符编码定长类型,长度为6,主码;书名:统一字符编码可变长类型,长度为30,非空;第一作者:普通编码定长字符类型,长度为10,非空;出版日期:小日期类型;价格:定点小数,小数部分1位,整数部分3位;(2)“书店表”结构如下:书店编号:统一字符编码定长类型,长度为6,主码;店名:统一字符编码可变长类型,长度为30,非空;电话:普通编码定长字符类型,8位长,每一位的取值均是0~9的数字;邮政编码:普通编码定长字符类型,6位长;(3)“图书销售表”结构如下:书号:统一字符编码定长类型,长度为6,非空;书店编号:统一字符编码定长类型,长度为6,非空;销售日期:小日期时间类型,非空;销售数量:微整型,大于等于1;主码为(书号,书店编号,销售日期);其中“书号”为引用“图书表”的“书号”的外码;“书店编号”为引用“书店表”的“书店编号”的外码;CREATETABLE图书表(书号nchar(6)primarykey,书名nvarchar(30)notnull,第一作者char(10)notnull,出版日期smalldatetime,价格numeric(4,1))CREATETABLE书店表(书店编号nchar(6)primarykey,店名nvarchar(30)notnull,电话char(8)check(电话like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),地址varchar(40),邮政编码char(6))CREATETABLE图书销售表(书号nchar(6)notnull,书店编号nchar(6)notnull,销售日期smalldatetimenotnull,销售数量smallintcheck(销售数量=1),primarykey(书号,书店编号,销售日期),foreignkey(书号)references图书表(书号),foreignkey(书店编号)references书店表(书店编号))3、为图书表添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。答:ALTERTABLE图书表ADD印刷数量intcheck(印刷数量=1000)4、删除书店表的“邮政编码”列。答:ALTERTABLE书店表DROPCOLUMN邮政编码5、将图书销售表中的“邮政编码”列的数据类型改为整型。答:ALTERTABLE图书销售表ALTERCOLUMN销售数量int第三次利用第3章定义的student、course和sc表结构实现如下操作。1、查询学生选课表中的全部数据。2、查询计算机系的学生的姓名、年龄。3、查询成绩在70~80分之间的学生的学号、课程号和成绩。4、查询计算机系年龄在18-20之间且性别为“男”的学生的姓名、年龄。5、查询课程号为“c01”的课程的最高的分数。6、查询计算机系学生的最大年龄和最小年龄。7、统计每个系的学生人数。8、统计每门课程的选课人数和考试最高分。9、统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。10、查询总成绩超过200分的学生,要求列出学号、总成绩。11、查询选修了“c02”号课程的学生的姓名和所在系。12、查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。13、查询哪些学生没有选课,要求列出学号、姓名和所在系。1.select*fromSC2.selectSname,SagefromStudentwhereSdept='计算机'3.selectSno,Cno,GradefromSCwhereGrade=70andGrade=804.selectSname,SagefromStudentwhereSagebetween18and20andSsex='男'5.selecttop1GradefromSCwhereCno='C01'6.selectmax(Sage),min(Sage)fromStudent7.selectSdept,sum(Sno)fromStudentgroupbySdept8.selectcourse.Cname,sum(sc.Sno),max(Grade)fromSCjoinstudetonStudent.Sno=SC.SnojoinCourseonCourse.Cno=SC.Cnogroupbycourse.cname,max(grade)9.selectsum(Cno),avg(Grade)fromSCjoinCourseonCourse.Cno=SC.CnojoinStudentonStudent.Sno=SC.SnoorderbySC.Sno10.Selectsno,sum(grade)总成绩fromscGroupbysnohavingsum(grade)20011.selectStudent.Sname,Student.SdeptfromStudentjoinCourseonCourse.Cno=SC.CnojoinSConSC.Sno=Student.SnowhereSC.Cno='C02'12.selectStudent.sname,course.cno,sc.gradefromscjoinstudentonstudent.sno=sc.snojoincourseoncourse.cno=sc.cnowheresc.grade=80orderbysc.gradedesc13.Selectsnamefromstudentsleftjoinscons.sno=sc.snoWheresc.snoisnull第四次1、查询与VB在同一学期开设的课程的课程名和开课学期。2、查询与李勇年龄相同的学生的姓名、所在系和年龄。3、用子查询实现如下查询:(1)查询选修了“c01”号课程的学生的姓名和所在系(2)查询数学系成绩80分以上的学生的学号、姓名、课程号和成绩(3)查询计算机系考试成绩最高的学生的姓名(4)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩。4、查询没有选修VB课程的学生的姓名和所在系。5、查询计算机系没有选课的学生的姓名和性别。6、删除考试成绩低于50分的学生的选课记录。7、删除没有人选的课程记录。8、删除计算机系VB成绩不及格学生的VB选课记录。9、将第2学期开设的所有课程的学分增加1分。10、将VB课程的学分改为3分。11、将计算机系学生的年龄增加1岁。12、将信息系学生的“计算机文化学”课程的考试成绩加5分。1.Selectc2.Cname,c2.SemesterfromCoursec1JOINCoursec2onc1.Semester=c2.SemesterWherec1.cname='VB'andc2.Cname!='VB'2.Selects2.Sname,s2.Sdept,s2.SageFromStudents1JOINStudents2ons1.Sage=s2.SageWheres1.Sname='李勇'ands2.Sname!='李勇'3.⑴selectsname,sdeptfromstudentwheresnoin(selectsnofromscwherecno='C01')⑵selectsno,snamefromstudentwheresnoin(selectsnofromscwheregrade80)andsdept='数学系'⑶selectsnamefromstudentsjoinscons.sno=sc.snowheresdept='计算机系'andgrade=(selectmax(grade)fromscjoinstudentsons.sno=sc.snowheresdept='计算机系')⑷selectsname,sdept,ssex,gradefromstudentsjoinscons.sno=sc.snowheres.snoin(selecttop1withtiessnofromscjoincourseconc.cno=sc.cnowherecname='数据结构'orderbygradedesc4.Selectsname,sdeptfromstudentwheresnonotin(Selectsnofromscjoincourseconc.cno=sc.cnoWherecname='vb')5.Selectsname,ssexfromstudentwheresdept='计算机系'Andsnonotin(selectsnofromsc)6.Deletefromscwheregrade507.Deletefromcoursewherecnonotin(Selectcnofromcourse)8.Deletefromscfromscjoinstudentsons.sno=sc.snoJoincourseconc.cno=sc.cnoWheresdept='计算机系'andcname='VB'Andgrade609.Updatecoursesetcredit=credit+2wheresemester=210.Updatecoursesetcredit=3wherecname='VB'11.Updatestudentsetsage=sage+1wheresdept='计算机系'12.UpdateSCsetgrade=grade+5Fromcoursecjoinsconc.cno=sc.cnoJoinstudentsons.sno=sc.snowheresdept='信息系'andcname='计算机文化学'第五次1、第一范式、第二范式和第三范式关系的定义分别是什么?答:不包含非原子项属性的关系就是第一范式的关系;对于第一范式的关系,如果此关系中的每个非主属性都完全函数依赖于主键,则此关系属于第二范式;对于第二范式的关系,如果所有的非主属·性都不传递依赖于主键,则此关系就是第三范式的。2、设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)设一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课
本文标题:数据库作业
链接地址:https://www.777doc.com/doc-2332556 .html