资源描述:
《《数据库系统》实验---实验三答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三复制表CREATETABLEtest3_01AS(SELECT*FROMpub.student_31)增加五个列ALTERTABLEtest3_01ADD(总成绩int,平均成绩int,总学分int,排名int,院系编号varchar(2))(1)使用update语句,利用pub.student_course、pub.course,统计“总成绩”;UPDATEtest3_01SET总成绩=(SELECTSUM(成绩)FROMpub.student_coursewheretest3_01.学号=pub.student_course.学号GROUPBY学号)(2)使用
2、update语句,利用pub.student_course、pub.course,统计“平均成绩”;UPDATEtest3_01SET平均成绩=(SELECTavg(成绩)FROMpub.student_coursewheretest3_01.学号=pub.student_course.学号GROUPBY学号)(3)使用update语句,利用pub.student_course、pub.course,统计“总学分”createtableaasSELECT学号,sum(学分)总学分FROMpub.student_course,pub.coursewherepub.cour
3、se.课程号=pub.student_course.课程号andpub.student_course.成绩>=60GROUPBY学号UPDATEtest3_01SET总学分=(select总学分fromawheretest3_01.学号=a.学号)droptablea(4)将总成绩的名次放入“排名”列中,总成绩相同的学生的排名也相同(即一个名次可以多个人),没有成绩的排名置空值。(提醒:可是使用oracle的rownum伪列实现);createtableaasselectrownum排名次,总成绩from(selectdistinct总成绩fromtest3_01gro
4、upby总成绩orderby总成绩descnullslast)updatetest3_01set排名=(select排名次fromawherea.总成绩=test3_01.总成绩)droptablea(5)利用pub.department,pub.department_31两个表,填写院系编号内容,没有对应的院系编号填写为00。createtableaasselect*frompub.departmentunionselect*frompub.department_31updatetest3_01set院系编号=(select院系编号fromawherea.院系名称=t
5、est3_01.院系名称)updatetest3_01set院系编号=‘00’wheretest3_01.院系编号isnulldroptablea2、(6)剔除姓名列中的所有空格updatetest3_02set姓名=replace(姓名,'','')(7)剔除院系名称列中的所有空格updatetest3_02set院系名称=replace(院系名称,'','')(8)对性别列进行规范(需要先确定哪些性别数据不规范,也就是那些和大多数不一样的数据)updatetest3_02set性别=substr(性别,1,1)where性别like'_性'updatetest3_0
6、2set性别=replace(性别,'','')(9)对班级列进行规范(需要先确定哪些班级不规范)。updatetest3_02set班级=substr(班级,1,4)(10)年龄为空值的根据出生日期设置年龄列,年龄不为空值的数据不要改变莫名其妙成功提交。。。。。。。3.在学生表pub.student中统计名字(姓名的第一位是姓氏,其余为名字,不考虑复姓)的使用的频率,将统计结果放入test3_11中,表结构如下。createtableaasselectsubstr(姓名,2)名字frompub.studentcreatetabletest3_11asselect名字,
7、count(*)频率fromagroupby名字droptablea4.在学生表pub.student中统计名字(姓名的第一位是姓氏,不作统计,名字指姓名的第二个之后的汉字)的每个字使用的频率,将统计结果放入test3_12中,表结构如下createtableaas(selectsubstr(姓名,2,1)字frompub.studentunionallselectsubstr(姓名,3,1)字frompub.student)createtabletest3_12asselect字,count(*)频率fromagroupby字delet